SSMS だけじゃない!SQL Server で実行プランを取得するその他の方法
SQL Server でクエリ実行プランを取得するには、いくつかの方法があります。
- SSMS の [実行プラン] ボタン
- SET SHOWPLAN_ALL オプション
- sys.dm_exec_query_plan DMV
- クエリのトレース
方法の詳細
これは、最も簡単で迅速な方法です。
- SQL Server Management Studio (SSMS) でクエリを開きます。
- ツールバーの [パフォーマンス] セクションで、[実行プラン] ボタンをクリックします。
- 実行プランが表示されます。
このオプションを使用すると、クエリの推定実行プランと実際の実行プランの両方を取得できます。
- クエリウィンドウで、次のクエリを実行します。
SET SHOWPLAN_ALL ON;
- クエリを実行します。
この DMV を使用すると、実行中のクエリの実行プランを取得できます。
SELECT * FROM sys.dm_exec_query_plan(plan_handle);
plan_handle
は、クエリのハンドルです。
クエリのトレースを使用すると、実行プランを含む、クエリエクセキューションの詳細情報を取得できます。
- SSMS で、[トレース] メニューを選択します。
- [新しいトレース] を選択します。
- [イベント] タブで、[クエリエクゼキューション] イベントを選択します。
- [開始] をクリックします。
- トレース結果を分析します。
補足
- 実行プランは、クエリの処理方法を理解するのに役立ちます。
- 実行プランを分析することで、クエリの性能を向上させることができます。
- いくつかの方法を組み合わせて、実行プランを取得することができます。
用語解説
- クエリ実行プラン:クエリの処理方法を記述した計画
- SSMS:SQL Server Management Studio
- DMV:Dynamic Management View
- トレース:クエリエクセキューションの詳細情報を記録する機能
SELECT *
FROM dbo.Customers;
SET SHOWPLAN_ALL ON;
SELECT *
FROM dbo.Customers;
SET SHOWPLAN_ALL OFF;
SELECT *
FROM sys.dm_exec_query_plan(@@plan_handle);
SELECT *
FROM dbo.Customers;
SQL Server でクエリ実行プランを取得するその他の方法
Profiler は、SQL Server のパフォーマンスを監視するためのツールです。 Profiler を使用して、クエリの詳細な実行情報を取得できます。
Extended Events は、Profiler の後継となるツールです。 Extended Events を使用して、クエリの詳細な実行情報を取得できます。
SSMS のクエリエディターには、実行プランを表示するための機能がいくつかあります。
- [Ctrl] + [Shift] + E キーを押す
- 右クリックメニュー から [実行プランの表示] を選択する
クエリの実行プランを XML 形式で取得
次のクエリを実行して、クエリの推定実行プランを XML 形式で取得できます。
SELECT query_plan FROM sys.dm_exec_sql_plan(N'SELECT * FROM dbo.Customers');
SELECT JSON_QUERY(query_plan) FROM sys.dm_exec_sql_plan(N'SELECT * FROM dbo.Customers');
注意事項
- 上記の方法の中には、SQL Server のバージョンによっては使用できないものがあります。
- クエリ実行プランを取得するには、適切な権限が必要です。
sql sql-server performance