クエリの分析

SQL Server データベース エンジンでは、クエリのほか、更新などその他の DML ステートメントで、どのようにテーブル間を移動し、インデックスを使用してデータにアクセスおよび処理するのかを表示できます。これが実行プランの表示です。実行速度が遅いクエリを分析するには、クエリの実行プランを調査して問題の原因を究明することが役立ちます。SQL Server によって実行プランが作成および使用される方法の詳細については、「SQL ステートメントの処理」および「実行プランのキャッシュと再利用」を参照してください。

実行プランは次の方法で表示できます。

  • SQL Server Management Studio

    グラフィカルな推定実行プラン (ステートメントは実行されません)、または (実行したステートメントの) グラフィカルな実際の実行プランのいずれかを表示します。いずれのプランも Management Studio で保存および表示できます。

  • Transact-SQL SET ステートメントのオプション

    Transact-SQL SET ステートメントのオプションを使用すると、推定実行プランや実際の実行プランを XML またはテキストで生成できます。

  • SQL Server Profiler イベント クラス

    SQL Server Profiler のイベント クラスを選択して、推定実行プランや実際の実行プランをトレース結果として XML またはテキストで生成するトレースに、選択したクラスを含めることができます。

上記のいずれかの方法で実行プランを表示すると、個別の DML (データ操作言語) や Transact-SQL ステートメントに対してデータベース エンジンが使用する最適な実行プランが表示されます。表示された実行プランからは、ストアド プロシージャに関するコンパイル時の情報、および任意の数の呼び出しレベルまでに呼び出されるストアド プロシージャがわかります。たとえば、SELECT ステートメントの実行で、データベース エンジンによってデータ取得にテーブル スキャンが使用されることが示される場合があります。また、データベース エンジンでインデックス スキャンの方がテーブルからデータを取得するよりも速いと判断した場合、インデックス スキャンが使用されることが表示される場合もあります。

このセクションの内容