Amazon RDS の Performance Insights ダッシュボードを使用した SQL Server 実行プランの分析 - Amazon Relational Database Service

Amazon RDS の Performance Insights ダッシュボードを使用した SQL Server 実行プランの分析

SQL Server データベースの DB 負荷を分析する際に、DB 負荷に最も影響しているプランを確認することもできます。DB 負荷に最も影響しているプランを特定するには、Performance Insights のプランキャプチャ機能を使用できます。

コンソールを使用して SQL Server 実行プランを分析するには
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[Performance Insights] を選択します。

  3. SQL Server DB インスタンスを選択します。この DB インスタンスに Performance Insights ダッシュボードが表示されます。

  4. [データベース負荷 (DB 付加)] セクションで、[スライス基準] の横にある [プラン] をクリックします。

    平均アクティブセッションのグラフには、上位 SQL ステートメントで使用されているプランが表示されます。プランのハッシュ値は、色分けされた四角形の右側に表示されます。各ハッシュ値によりプランを一意に識別できます。

    プランによるスライス化
  5. 下部にある [トップ SQL] タブまでスクロールします。

    次の例では、上位の SQL ダイジェストに 3 つのプランがあります。SQL ステートメントに疑問符が付いている場合は、そのステートメントがダイジェストであることを示しています。SQL ステートメント全体を表示するには、[SQL ステートメント] 列の値を選択します。

    ダイジェストプランを選択する
  6. ダイジェストを選択して、そのコンポーネントステートメントを展開します。

    以下の例では、SELECT ステートメントがダイジェストクエリです。ダイジェスト内のコンポーネントクエリでは、3 つの異なる実行プランを使用します。プランに付けられた色は、データベースの負荷チャートに対応しています。

    ダイジェストプランを選択する
  7. 下にスクロールし、[ダイジェストクエリのプラン] リストから、比較する 2 つの [プラン] を選択します。

    1 つのクエリについて、一度に 1 つまたは 2 つのプランを表示できます。次のスクリーンショットは、ダイジェスト内の 2 つのプランを比較しています。次の例では、このダイジェストクエリを実行する平均アクティブセッションの 40% が左側のプランを使用し、28% が右側のプランを使用しています。

    プランを並べて比較する

    前の例では、プラン間に重要な違いがあります。左側のプランのステップ 2 ではテーブルスキャンを使用しているのに対し、右側のプランではクラスター化インデックススキャンを使用しています。行数が多いテーブルでは、ほとんどの場合、1 行を取得するクエリはクラスター化インデックススキャンより高速です。

  8. (オプション) [プランの詳細] テーブルの [設定] アイコンを選択して、列の表示と順序をカスタマイズします。次のスクリーンショットでは、[プランの詳細] テーブルに [出力リスト] 列が 2 番目の列として表示されています。

    [プランの詳細] テーブルの列の表示と順序をカスタマイズする
  9. (オプション) [コピー] をクリックし、クリップボードにプランをコピーします。あるいは、[ダウンロード] により、ハードドライブにプランを保存します。

注記

Performance Insights は、階層ツリーテーブルを使用して推定実行プランを表示します。このテーブルには、各ステートメントの部分的な実行情報が含まれています。[プランの詳細] テーブルの列の詳細については、SQL Server ドキュメントの「SET SHOWPLAN_ALL」を参照してください。推定実行プランの実行情報全体を表示するには、[ダウンロード] を選択してプランをダウンロードし、これを SQL Server Management Studio にアップロードします。SQL Server Management Studio を使用して推定実行プランを表示する方法の詳細については、SQL Server ドキュメントの「Display an Estimated Execution Plan」を参照してください。