DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)
適用対象:Azure Synapse Analytics
Analytics Platform System (PDW)
特定の SQL Server または Azure Synapse Analytics 計算ノードまたは制御ノードで実行されているクエリの Analytics Platform System (PDW) 実行プランを表示します。 クエリの計算ノードと制御ノードでの実行中に、クエリ パフォーマンスの問題のトラブルシューティングを行うにはこれを使用します。
計算ノードで実行されている SMP SQL Server クエリについて、クエリのパフォーマンスに問題があることがわかった場合、パフォーマンスを向上する方法がいくつかあります。 計算ノードでのクエリのパフォーマンスを向上させる方法として、複数列統計の作成、非クラスター化インデックスの作成、クエリ ヒントの使用が考えられます。
構文
Azure Synapse Analytics の構文:
DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]
Analytics Platform System (PDW) の構文:
DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]
Note
この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。
引数
distribution_id
クエリ プランを実行しているディストリビューションの識別子です。 これは整数であり、NULL
にすることはできません。 値は 1 から 60 までの範囲でなければなりません Azure Synapse Analytics をターゲットとする場合に使用されます。
pdw_node_id
クエリ プランを実行しているノードの識別子です。 これは整数であり、NULL
にすることはできません。 アプライアンスをターゲットとする場合に使用されます。
spid
クエリ プランを実行している SQL Server セッションの識別子です。 これは整数であり、NULL
にすることはできません。
アクセス許可
Azure Synapse Analytics に対する CONTROL アクセス許可が必要です。
アプライアンスに対する VIEW-SERVER-STATE アクセス許可が必要です。
例: Azure Synapse Analytics
A. DBCC PDW_SHOWEXECUTIONPLAN の基本的な構文
次のサンプル クエリは、アクティブに実行されているディストリビューションごとに sql_spid
を返します。
SELECT [sql_spid]
, [pdw_node_id]
, [request_id]
, [dms_step_index]
, [type]
, [start_time]
, [end_time]
, [status]
, [distribution_id]
FROM sys.dm_pdw_dms_workers
WHERE [status] <> 'StepComplete'
AND [status] <> 'StepError'
ORDER BY request_id
, [dms_step_index];
セッション 375 で distribution_id
1 が実行していたものについて確認するには、次のコマンドを実行します。
DBCC PDW_SHOWEXECUTIONPLAN (1, 375);
例: Analytics Platform System (PDW)
B. DBCC PDW_SHOWEXECUTIONPLAN の基本的な構文
実行時間が長すぎるクエリでは、DMS クエリプラン操作または SQL クエリ プラン操作が実行されています。
クエリで DMS クエリ プラン操作が実行されている場合は、次のクエリを使用して、不完全な手順のノード ID とセッション ID のリストを取得できます。
SELECT [sql_spid]
, [pdw_node_id]
, [request_id]
, [dms_step_index]
, [type]
, [start_time]
, [end_time]
, [status]
FROM sys.dm_pdw_dms_workers
WHERE [status] <> 'StepComplete'
AND [status] <> 'StepError'
AND pdw_node_id = 201001
ORDER BY request_id
, [dms_step_index]
, [distribution_id];
前のクエリの結果に基づいて、DBCC PDW_SHOWEXECUTIONPLAN
のパラメーターとして sql_spid
および pdw_node_id
を使用します。 たとえば、次のコマンドでは、pdw_node_id
201001 および sql_spid
375 の実行プランが表示されます。
DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);