DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)
Применимо к:Azure Synapse Analytics AnalyticsPlatform System (PDW)
Отображает план выполнения SQL Server для запроса, выполняющегося в определенном вычислительном либо управляющем узле Azure Synapse Analytics или Система платформы аналитики (PDW). Позволяет устранять проблемы с производительностью запросов, выполняющихся в вычислительных узлах или управляющем узле.
После определения проблем с производительностью запросов SMP SQL Server, выполняющихся в вычислительных узлах, повысить производительность можно несколькими способами. Возможные способы оптимизации производительности запросов в вычислительных узлах включают в себя создание статистики по нескольким столбцам, создание некластеризованных индексов или использование указаний запросов.
Соглашения о синтаксисе Transact-SQL
Синтаксис
Синтаксис для Azure Synapse Analytics:
DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]
Синтаксис для Система платформы аналитики (PDW):
DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]
Примечание
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Аргументы
distribution_id
Идентификатор распределения, в котором выполняется план запроса. Это целое число и не может иметь значение NULL
. Значение должно находиться в диапазоне от 1 до 60. Используется при разработке для Azure Synapse Analytics.
pdw_node_id
Идентификатор узла, в котором выполняется план запроса. Это целое число и не может иметь значение NULL
. Используется для устройства.
spid
Идентификатор сеанса SQL Server, в котором выполняется план запроса. Это целое число и не может иметь значение NULL
.
Разрешения
Требуется разрешение CONTROL для Azure Synapse Analytics.
Требуется разрешение 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];
Чтобы узнать, что выполнялось в рамках distribution_id
1 в сеансе 375, следует выполнить приведенную ниже команду.
DBCC PDW_SHOWEXECUTIONPLAN (1, 375);
Примеры: Система платформы аналитики (PDW)
Б. Базовый синтаксис dbcc PDW_SHOWEXECUTIONPLAN
Если запрос выполняется слишком долго, значит, он производит операцию плана запроса DMS или операцию плана запроса SQL.
Если запрос выполняет операцию плана запроса DMS, можно использовать следующий запрос, чтобы получить список идентификаторов узлов и идентификаторов сеансов для действий, которые не завершены.
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];
Полученные в результате предыдущего запроса значения sql_spid
и pdw_node_id
можно использовать как параметры инструкции DBCC PDW_SHOWEXECUTIONPLAN
. Например, приведенная ниже команда отображает план выполнения для pdw_node_id
201001 и sql_spid
375.
DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);
Дальнейшие действия
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по