Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Exibe o plano de execução do SQL Server para uma consulta em execução em um nó de computação ou nó de controle específico do Azure Synapse Analytics ou do Analytics Platform System (PDW). Use isso para solucionar problemas de desempenho de consulta enquanto as consultas estão sendo executadas nos nós de computação e controle.
Depois que os problemas de desempenho de consulta são compreendidos para consultas SMP SQL Server em execução nos nós de computação, há várias maneiras de melhorar o desempenho. As possíveis maneiras de melhorar o desempenho da consulta nos nós de computação incluem a criação de estatísticas de várias colunas, a criação de índices não clusterizados ou o uso de dicas de consulta.
Transact-SQL convenções de sintaxe
Sintaxe
Sintaxe do Azure Synapse Analytics:
DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]
Sintaxe para o Analytics Platform System (PDW):
DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]
Observação
Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
Argumentos
distribution_id
Identificador da distribuição que está executando o plano de consulta. Este é um número inteiro e não pode ser NULL. O valor deve estar entre 1 e 60. Usado ao direcionar o Azure Synapse Analytics.
pdw_node_id
Identificador do nó que está executando o plano de consulta. Este é um número inteiro e não pode ser NULL. Usado ao segmentar um Aparelho.
espiado
Identificador da sessão do SQL Server que está executando o plano de consulta. Este é um número inteiro e não pode ser NULL.
Permissões
Requer permissão CONTROL no Azure Synapse Analytics.
Requer permissão Exibir Estado do Servidor no Aparelho.
Exemplos: Azure Synapse Analytics
Um. DBCC PDW_SHOWEXECUTIONPLAN sintaxe básica
A consulta de exemplo a seguir retornará o sql_spid para cada distribuição em execução ativa.
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 você estiver curioso sobre o que distribution_id 1 estava sendo executado na sessão 375, você executaria o seguinte comando:
DBCC PDW_SHOWEXECUTIONPLAN (1, 375);
Exemplos: Analytics Platform System (PDW)
B. DBCC PDW_SHOWEXECUTIONPLAN sintaxe básica
A consulta que está sendo executada por muito tempo está executando uma operação de plano de consulta DMS ou uma operação de plano de consulta SQL.
Se a consulta estiver executando uma operação de plano de consulta DMS, você poderá usar a consulta a seguir para recuperar uma lista de IDs de nó e IDs de sessão para etapas que não foram concluídas.
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];
Com base nos resultados da consulta anterior, use o sql_spid e pdw_node_id como parâmetros para DBCC PDW_SHOWEXECUTIONPLAN. Por exemplo, o comando a seguir mostra o plano de execução para pdw_node_id 201001 e sql_spid 375.
DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);