

# Performance Insights のトップ SQL タブを使用したクエリの分析
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics"></a>

Amazon RDS Performance Insights ダッシュボードでは、実行中のクエリや最近のクエリに関する情報を **[Top dimensions]** (上位ディメンション) テーブルの**[Top SQL]** (上位の SQL) タブで見ることができます。この情報を使用して、クエリをチューニングできます。

**Topics**
+ [[トップ SQL] タブの概要](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL)
+ [Performance Insights ダッシュボードでより多くの SQL テキストにアクセスする](USER_PerfInsights.UsingDashboard.SQLTextSize.md)
+ [Performance Insights ダッシュボードでの SQL 統計の表示](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.AnalyzingSQLLevel.md)

## [トップ SQL] タブの概要
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL"></a>

デフォルトでは、[**Top SQL**] (上位の SQL) タブはデータベースロードに最も貢献している 25 クエリを表示します。クエリをチューニングするために、クエリテキスト、SQL 統計などの情報を分析できます。また、[**トップ SQL**] タブに表示する統計を選択することもできます。

**Topics**
+ [SQL テキスト](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text)
+ [SQL 統計](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics)
+ [待機によるロード (AAS)](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits)
+ [SQL 情報の表示](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information)
+ [統計設定を選択する](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences)

### SQL テキスト
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text"></a>

デフォルトでは、[**Top SQL**] (上位の SQL) テーブルの各行にはステートメントごとに 500 バイトのテキストが表示されます。

![\[SQL テキスト\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/sql-text-apg.png)


デフォルトの 500 バイト以上の SQL テキストを表示する方法については、「[Performance Insights ダッシュボードでより多くの SQL テキストにアクセスする](USER_PerfInsights.UsingDashboard.SQLTextSize.md)」を参照してください。

*SQL ダイジェスト*は、構造的には類似しているが、異なるリテラル値を含む可能性の高い、複数の実際のクエリの複合体です。ダイジェストは、ハードコードされた値を疑問符に置き換えます。例えば、ダイジェストは`SELECT * FROM emp WHERE lname= ?`のことがあります。このダイジェストには、次の子クエリが含まれます。

```
SELECT * FROM emp WHERE lname = 'Sanchez'
SELECT * FROM emp WHERE lname = 'Olagappan'
SELECT * FROM emp WHERE lname = 'Wu'
```

ダイジェスト内でリテラル SQL ステートメントを表示するには、クエリを選択してからプラス記号 (\$1) を選択します。以下の例では、選択されたクエリはダイジェストです。

![\[選択された SQL ダイジェスト\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/perf_insights_4b.png)


**注記**  
SQL ダイジェストでは、類似した SQL ステートメントがグループ化されますが、機密情報は編集されません。

### SQL 統計
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics"></a>

*SQL 統計*は、SQL クエリに関するパフォーマンス関連のメトリックです。例えば、Performance Insights には 1 秒あたりの実行数や 1 秒あたりの処理行数が表示されることがあります。Performance Insights は、最も一般的なクエリのみの統計を収集します。通常、これらは Performance Insights ダッシュボードに負荷別に表示される上位のクエリと一致します。

[**トップ SQL**] テーブル内の各行は、次の例のように、SQL ステートメントまたはダイジェストに関連する統計を示します。

![\[上位の SQL\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/perf_insights_4.png)


Performance Insights は、SQL 統計で `0.00` および `-` (不明) をレポートする可能性があります。この状況は、以下の条件で発生します。
+ サンプルが 1 つだけ存在する。例えば、Performance Insights は、`pg_stat_statements` ビューからの複数のサンプルに基づいて、Aurora PostgreSQL クエリの変更率を計算します。ワークロードが短時間実行されると、Performance Insights ではサンプルが 1 つしか収集されない場合があります。つまり、変更率を計算できません。不明な値はダッシュ (`-`) で表されます。
+ 2 つのサンプルが同じ値を持っている。Performance Insights は、変更が発生していないため、変更率を計算することができず、変化率を `0.00` と報告します。
+ Aurora PostgreSQL ステートメントに有効な識別子がない。PostgreSQL は、構文解析と分析の後にのみ、ステートメントの識別子を作成します。したがって、PostgreSQL の内部インメモリ構造に、識別子なしでステートメントが存在する可能性があります。Performance Insights は内部メモリ内構造を 1 秒に 1 回サンプリングするため、低レイテンシーのクエリは 1 つのサンプルに対してのみ表示されることがあります。このサンプルでクエリ識別子を使用できない場合、Performance Insights はこのステートメントを統計に関連付けることはできません。不明な値はダッシュ (`-`) で表されます。

Aurora エンジンの SQL 統計の説明については、「[Performance Insights の SQL 統計](sql-statistics.md)」を参照してください。

### 待機によるロード (AAS)
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits"></a>

[**トップ SQL**] の [**待機別の負荷 (AAS)**] 列は、上位の各ロード項目に関連付けられているデータベースロードの割合を示しています。この列には、**DB 負荷グラフ**で現在選択されているグループ化に応じて、その項目に対する負荷が反映されます。平均アクティブセッション（AAS）の詳細については、[平均アクティブセッション](USER_PerfInsights.Overview.ActiveSessions.md#USER_PerfInsights.Overview.ActiveSessions.AAS) を参照してください。

例えば、**DB 負荷グラフ**を待機状態別にグループ化できます。上位負荷項目のテーブルで SQL クエリを調べます。この場合は、[**待機別の DB 負荷**] バーは、クエリが貢献している待機状態の量を示すために、サイズ、セグメント、および色で分けられています。また、選択したクエリに影響を与えている待機状態も示されます。

![\[待機別の DB 負荷\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/perf_insights_6.png)


### SQL 情報の表示
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information"></a>

[**トップ SQL**] テーブルで、ステートメントを開いてその情報を表示できます。下部のペインに情報が表示されます。

![\[リテラルクエリが選択された上位の SQL テーブル\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/perf-insights-sql-ids-open.png)


SQL ステートメントに関連付けられているタイプの識別子 (ID) は以下のとおりです。
+ **Support SQL ID** - SQL ID のハッシュ値。この値は、AWS サポートを利用しているときに SQL ID を参照するためだけのものです。AWS サポートが実際の SQL ID や SQL テキストにアクセスすることはできません。
+ **ダイジェスト ID のサポート** - Digest ID のハッシュ値。この値は、AWS サポートを利用しているときにダイジェスト ID を参照するためだけのものです。AWSサポートが実際のダイジェスト ID や SQL テキストにアクセスすることはできません。

### 統計設定を選択する
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences"></a>

「**設定**」 アイコンを選択すると、[**トップ SQL**] タブに表示される統計を制御できます。

![\[統計設定\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/perf-insights-sql-ids-preferences-icon.png)


[**設定**] アイコンを選択すると、[**設定**] ウィンドウが開きます。次のスクリーンショットは、**[Preferences]** (環境設定) ウィンドウの例です。

![\[設定ウィンドウ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/perf-insights-sql-ids-preferences.png)


[**トップ SQL**] タブに表示させたい統計を有効にするには、マウスを使用してウィンドウの下部までスクロールし、[**続行**] を選択します。

 Aurora エンジンの秒単位または呼び出し単位の統計の詳細については、[Performance Insights の SQL 統計](sql-statistics.md) の「エンジン固有の SQL 統計」セクションを参照してください。