SQL Serverでは、SET SHOWPLAN_XML
を使用できます。 明確に定義されたXMLドキュメントの形式で、T-SQLステートメントの実行方法に関する詳細情報を返すステートメント。
SHOWPLAN_ALL
に似ています 、ただしSHOWPLAN_ALL
階層ツリーを形成する行のデータセットを返します。
SHOWPLAN_XML
を設定できます ON
のいずれかに またはOFF
。
SHOWPLAN_XML
の場合 ON
です 、後続のすべてのT-SQLステートメントは実行されません。代わりに、SQL Serverはステートメントの実行情報を(実行せずに)返します。
例
実例を示します。
SET SHOWPLAN_XML ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
SET SHOWPLAN_XML
に注意してください ストアドプロシージャ内で指定することはできません。また、バッチ内の唯一のステートメントである必要があります。
得られる結果は、SQLServerへのアクセスに使用しているツールによって異なる場合があります。
これをAzureDataStudioで実行すると、さまざまなタブをクリックして、結果の別のビューを取得できます。
結果 タブには生のXML文字列が表示されます:
行をクリックすると、新しいタブでXMLドキュメントが開きます。
クエリプラン タブには、結果のグラフィック表現が表示されます:
トップオペレーション tabは、さまざまなメトリックでデータを並べ替えることができる表形式でデータを表示します。
機能しませんか?
うまくいかない場合は、実際の実行計画を含めることを確認してください SSMSでは選択されていません。これを選択すると、SET SHOWPLAN_XML ON
XMLShowplan出力は生成されません。
オフにする方法
SET SHOWPLAN_XML OFF
を使用してオフにできます 。
これを実行すると、後続のステートメントは通常どおり実行されます。
SET SHOWPLAN_XML OFF;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
結果:
Commands completed successfully. +---------+-----------+---------+-----------+-----------+ | CatId | CatName | DogId | DogName | GoodDog | |---------+-----------+---------+-----------+-----------| | 2 | Fluffy | 2 | Fluffy | 0 | +---------+-----------+---------+-----------+-----------+ (1 row affected) Commands completed successfully.
GUIでの実行計画
SSMSやAzureDataStudioなどのグラフィカルツールを使用している場合は、推定されたグラフィカルクエリ実行プランを表示するためのショートカットオプションがある場合があります。これにより、SET SHOWPLAN_XML ON
を実行しなくてもクエリプランを表示できます。 。
推定クエリプランを実行するには:
- SSMSでは、 Ctrl + Lを使用できます これをする。または、推定実行プランの表示をクリックすることもできます アイコンをクリックするか、クエリウィンドウを右クリックして、[推定実行プランの表示]を選択します。 。これにより、
SHOWPLAN_XML
を有効にする必要がなくなります。 コード内でオンとオフを切り替えます。 - Azure Data Studioでは、説明をクリックできます クエリウィンドウの上にあるボタン。
実際のクエリプランを実行することもできます:
- SSMSでは、クエリ メニューで、[実際の実行プランを含める]をクリックします または、実際の実行プランを含めるをクリックします ツールバーボタン。
- Azure Data Studioで、表示>コマンドパレットに移動します 実際の計画で現在のクエリを実行と入力します 。
実際の実行プランを含める場合は注意してください SSMSで選択されている場合、SET SHOWPLAN_XML ON
オプションはXMLShowplan出力を生成しません。 実際の実行プランを含めるをクリアしてみてください このSET
を使用する前にボタン オプション。
ただし、AzureDataStudioは反対のSHOWPLAN_XML ON
を実行します。 実際の計画で現在のクエリを実行を上書きするようです Explainを実行する場合を除いてオプション 最初(推定クエリプラン)、その後実際のプランで現在のクエリを実行 突然動作します(実際の行 および実際の処刑 トップオペレーションの列 タブは適切なデータを返します。
クエリプランを取得するために他の方法を使用する前に、XMLShowplanオプションをオフにするのがおそらく最善です。