DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)

Se aplica a: síAzure Synapse Analytics síAlmacenamiento de datos paralelos

Muestra el plan de ejecución de SQL Server para una consulta que se ejecuta en un nodo de ejecución o un nodo de control determinado de Azure Synapse Analytics o Sistema de la plataforma de análisis (PDW). Úselo para solucionar problemas de rendimiento de consultas mientras se ejecutan las consultas en los nodos de ejecución y de control.

Una vez que se conozcan los problemas de rendimiento de las consultas de SQL Server de SMP que se ejecutan en los nodos de ejecución, hay varias maneras de mejorar el rendimiento. Entre las diversas formas de mejorar el rendimiento de las consultas de los nodos de ejecución se incluye crear estadísticas de varias columnas, crear índices no agrupados o usar sugerencias de consulta.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL (Transact-SQL)

Sintaxis

Sintaxis para Azure Synapse Analytics:

DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id, spid )  
[ ; ]  

Sintaxis para Sistema de la plataforma de análisis (PDW):

DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id, spid )  
[ ; ]  

Nota

El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

Argumentos

distribution_id
Identificador de la distribución que ejecuta el plan de consulta. Es un entero y no puede ser NULL. El valor debe estar entre 1 y 60. Se usa cuando el destino es Azure Synapse Analytics.

pdw_node_id
Identificador del nodo que ejecuta el plan de consulta. Es un entero y no puede ser NULL. Se usa cuando el destino es un dispositivo.

spid
Identificador de la sesión de SQL Server que ejecuta el plan de consulta. Es un entero y no puede ser NULL.

Permisos

Necesita el permiso CONTROL en Azure Synapse Analytics.

Requiere el permiso VIEW-SERVER-STATE en el dispositivo.

Ejemplos: Azure Synapse Analytics

A. Sintaxis básica de DBCC PDW_SHOWEXECUTIONPLAN

Cuando se ejecuta en una instancia de Azure Synapse Analytics, modifique la consulta anterior para seleccionar también el valor de distribution_id.

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];  

Esto devolverá el spid de cada distribución que se ejecuta activamente. Si le interesa saber cuál es la distribución 1 que se ejecutaba en la sesión 375, debe ejecutar el comando siguiente.

DBCC PDW_SHOWEXECUTIONPLAN ( 1, 375 );  

Ejemplos: Sistema de la plataforma de análisis (PDW)

B. Sintaxis básica de DBCC PDW_SHOWEXECUTIONPLAN

Cuando una consulta se ejecuta durante mucho tiempo, significa que está ejecutando una operación de plan de consulta DMS o una operación de plan de consulta SQL.

Si la consulta está ejecutando una operación de plan de consulta DMS, puede usar la consulta siguiente para recuperar una lista de los identificadores de nodo y de sesión para conocer los pasos que no se han completado.

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];  

En función de los resultados de la consulta anterior, use los parámetros sql_spid y pdw_node_id para DBCC PDW_SHOWEXECUTIONPLAN. Por ejemplo, en el comando siguiente se muestra el plan de ejecución para pdw_node_id 201001 y sql_spid 375.

DBCC PDW_SHOWEXECUTIONPLAN ( 201001, 375 );  

Consulte también