DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)
Si applica a: Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Visualizza il piano di esecuzione di SQL Server per una query in esecuzione in uno specifico nodo di calcolo o nodo di controllo di Azure Synapse Analytics o della Piattaforma di strumenti analitici (PDW). Consente di risolvere i problemi relativi alle prestazioni di query quando le query vengono eseguite sui nodi di calcolo e di controllo.
Dopo il rilevamento di problemi di prestazioni delle query per le query SQL Server SMP in esecuzione nei nodi di calcolo, esistono diversi modi per migliorare le prestazioni. Le possibili soluzioni per migliorare le prestazioni delle query sui nodi di calcolo includono la creazione di statistiche multicolonna, la creazione di indici non cluster o l'uso di hint per la query.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
Sintassi per Azure Synapse Analytics:
DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]
Sintassi per la piattaforma di strumenti analitici (PDW):
DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]
Nota
Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Argomenti
distribution_id
Identificatore per la distribuzione in cui è in esecuzione il piano di query. Si tratta di un numero intero e non può essere NULL
. Il valore deve essere compreso tra 1 e 60. Usato quando la destinazione è Azure Synapse Analytics.
pdw_node_id
Identificatore per il nodo in cui è in esecuzione il piano di query. Si tratta di un numero intero e non può essere NULL
. Usato quando la destinazione è un'appliance.
spid
Identificatore per la sessione di SQL Server in cui è in esecuzione il piano di query. Si tratta di un numero intero e non può essere NULL
.
Autorizzazioni
È richiesta l'autorizzazione CONTROL per Azure Synapse Analytics.
È richiesta l'autorizzazione VIEW SERVER STATE per l'appliance.
Esempi: Azure Synapse Analytics
R. Sintassi di base di DBCC PDW_SHOWEXECUTIONPLAN
La query di esempio seguente restituirà il valore sql_spid
per ogni distribuzione in esecuzione attiva.
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];
Se si vuole sapere quale distribution_id
1 era in esecuzione nella sessione 375, eseguire il comando seguente:
DBCC PDW_SHOWEXECUTIONPLAN (1, 375);
Esempi: Piattaforma di strumenti analitici (PDW)
B. Sintassi di base di DBCC PDW_SHOWEXECUTIONPLAN
La query che è in esecuzione da troppo tempo sta eseguendo un'operazione del piano di query DMS o un'operazione del piano di query SQL.
Se la query esegue un'operazione del piano di query dms, è possibile usare la query seguente per recuperare un elenco di ID nodo e ID sessione per i passaggi non completati.
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];
In base ai risultati della query precedente, usare sql_spid
e pdw_node_id
come parametri per DBCC PDW_SHOWEXECUTIONPLAN
. Il comando seguente illustra ad esempio il piano di esecuzione per pdw_node_id
201001 e sql_spid
375.
DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);