SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説

実行プランの基本

実行プランは、統計情報やAlgebrizer/プロセスツリーをもとに、クエリオプティマイザーによって作成されます。これはクエリオプティマイザーが出力した結果であり、クエリがどのような手順で処理されるのかを示す重要な情報です。

実行プランの2種類:推定プランと実際のプラン

実行プランには、次の2種類が存在します。

  1. 推定実行プラン(Estimated Plan) … オプティマイザーが算出した、最も最適と思われる実行方法の見込みを表示します。
  2. 実際の実行プラン(Actual Plan) … クエリが実際にどのように実行され、どのようなパフォーマンスを発揮したかを表示します。

プランキャッシュへの保存

作成された実行プランは、再利用のためにプランキャッシュへ保存されます。オプティマイザーがクエリの並列実行を選択しない限り、各プランは一度だけ保存される仕組みになっています。

SQL Serverにおける3つの実行プラン形式

SQL Serverでは、実行プランを次の3つの形式で確認できます。

  • グラフィカルプラン(Graphical Plan)
  • テキストプラン(Text Plan)
  • XMLプラン(XML Plan)(マークアップ言語形式)

また、ユーザーが実行プランを表示するためには、SHOWPLAN権限が必要です。

例1:推定実行プランを確認する手順

以下は、推定実行プランを表示するための手順です。

ステップ1 – SQL Serverインスタンスに接続します。ここでは、下図のようにTESTINSTANCEに接続するものとします。

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説
SQL Serverインスタンスへの接続

ステップ2 – データベース名(ここではTestDB)を選択し、[新しいクエリ]をクリックして、次のクエリを入力します。

Select * from StudentTable

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説
新しいクエリの入力

ステップ3 – 上図で赤く強調されたアイコンをクリックすると、下図のように推定実行プランが表示されます。

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説
推定実行プラン

ステップ4Table Scan(上図の赤枠内にある2番目のアイコン)にマウスポインターを合わせると、推定実行プランの詳細を確認できます。次のような画面が表示されます。

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説
推定実行プランの詳細

例2:実際の実行プランを確認する手順

続いて、実際の実行プランを表示する手順を説明します。

ステップ1およびステップ2は、例1と同じ手順です。

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説
実際の実行プランを表示するための新しいクエリ作成

ステップ3 – 上図で赤丸で囲まれたアイコンをクリックすると、下図のように実際の実行プランが開きます。

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説
SQL Serverでの実際の実行プラン

ステップ4Table Scan(上図の赤枠内にある2番目のアイコン)にマウスポインターを合わせると、実行プランの詳細を確認できます。次のような画面が表示されます。

SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説
実行プランの詳細

ステップ5 – 最後に、画面左上の[結果]をクリックして完了です。

  1. SQL Serverの実行プランとは?推定・実際の実行プランの確認方法を解説

    実行プランの基本 実行プランは、統計情報やAlgebrizer/プロセスツリーをもとに、クエリオプティマイザーによって作成されます。これはクエリオプティマイザーが出力した結果であり、クエリがどのような手順で処理されるのかを示す重要な情報です。 実行プランの2種類:推定プランと実際のプラン 実行プランには、次の2種類が存在します。 推定実行プラン(Estimated Plan) … オプティマイザーが算出した、最も最適と思われる実行方法の見込みを表示します。 実際の実行プラン(Actual Plan) … クエリが実際にどのように実行され、どのようなパフォーマンスを発揮したかを表示します。

  2. 【徹底解説】SQL Serverの実行計画の読み方とクエリチューニングのポイント

    SQL Serverの実行計画(Execution Plan)は、どのように読めばよいのでしょうか?右から左か、左から右か、それともコストを確認すべきでしょうか?あるいはインデックススキャン、テーブルスキャン、ルックアップといったオブジェクトに着目すべきでしょうか?本記事では、Microsoft® SQL Serverの実行計画の正しい読み方と、クエリチューニングのポイントについて詳しく解説します。 はじめに SQL Serverは通常、良好な実行プランを自動的に生成します。しかし、生成されたプランの妥当性を検証し、非効率なプランを自ら修正できるほど賢くはありません。そのため、DBAや開発者が