Amazon RDS の Performance Insights ダッシュボードを使用した SQL Server 実行プランの分析
SQL Server データベースの DB 負荷を分析する際に、DB 負荷に最も影響しているプランを確認することもできます。DB 負荷に最も影響しているプランを特定するには、Performance Insights のプランキャプチャ機能を使用できます。
コンソールを使用して SQL Server 実行プランを分析するには
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[Performance Insights] を選択します。
-
SQL Server DB インスタンスを選択します。この DB インスタンスに Performance Insights ダッシュボードが表示されます。
-
[データベース負荷 (DB 付加)] セクションで、[スライス基準] の横にある [プラン] をクリックします。
平均アクティブセッションのグラフには、上位 SQL ステートメントで使用されているプランが表示されます。プランのハッシュ値は、色分けされた四角形の右側に表示されます。各ハッシュ値によりプランを一意に識別できます。
-
下部にある [トップ SQL] タブまでスクロールします。
次の例では、上位の SQL ダイジェストに 3 つのプランがあります。SQL ステートメントに疑問符が付いている場合は、そのステートメントがダイジェストであることを示しています。SQL ステートメント全体を表示するには、[SQL ステートメント] 列の値を選択します。
-
ダイジェストを選択して、そのコンポーネントステートメントを展開します。
以下の例では、
SELECT
ステートメントがダイジェストクエリです。ダイジェスト内のコンポーネントクエリでは、3 つの異なる実行プランを使用します。プランに付けられた色は、データベースの負荷チャートに対応しています。 -
下にスクロールし、[ダイジェストクエリのプラン] リストから、比較する 2 つの [プラン] を選択します。
1 つのクエリについて、一度に 1 つまたは 2 つのプランを表示できます。次のスクリーンショットは、ダイジェスト内の 2 つのプランを比較しています。次の例では、このダイジェストクエリを実行する平均アクティブセッションの 40% が左側のプランを使用し、28% が右側のプランを使用しています。
前の例では、プラン間に重要な違いがあります。左側のプランのステップ 2 ではテーブルスキャンを使用しているのに対し、右側のプランではクラスター化インデックススキャンを使用しています。行数が多いテーブルでは、ほとんどの場合、1 行を取得するクエリはクラスター化インデックススキャンより高速です。
(オプション) [プランの詳細] テーブルの [設定] アイコンを選択して、列の表示と順序をカスタマイズします。次のスクリーンショットでは、[プランの詳細] テーブルに [出力リスト] 列が 2 番目の列として表示されています。
-
(オプション) [コピー] をクリックし、クリップボードにプランをコピーします。あるいは、[ダウンロード] により、ハードドライブにプランを保存します。
注記
Performance Insights は、階層ツリーテーブルを使用して推定実行プランを表示します。このテーブルには、各ステートメントの部分的な実行情報が含まれています。[プランの詳細] テーブルの列の詳細については、SQL Server ドキュメントの「SET SHOWPLAN_ALL