DBCC PDW_SHOWEXECUTIONPLAN(Transact-SQL)

适用于:Azure Synapse Analytics

显示在特定 Azure Synapse Analytics 计算节点或控制节点上运行的查询的 SQL Server 执行计划。 在计算节点和控制节点上运行查询时,使用它来解决查询性能问题。

了解在计算节点上运行的 SMP SQL Server 查询的查询性能问题后,可通过几种方法来提高性能。 可提高计算节点上查询性能的方法包括创建多列统计信息、创建非聚集索引或使用查询提示。

Transact-SQL 语法约定

语法

Azure Synapse Analytics 的语法:

DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]

注意

Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

参数

distribution_id

正在运行查询计划的分发的标识符。 这是一个整数,并且不能为 NULL。 值必须介于 1 和 60 之间。 以 Azure Synapse Analytics 为目标时使用。

spid

正在运行查询计划的 SQL Server 会话的标识符。 这是一个整数,并且不能为 NULL。

权限

需要对 Azure Synapse Analytics 的 CONTROL 权限。

需要 VIEW 设备上的服务器状态 权限。

示例: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);