다음을 통해 공유


DBCC PDW_SHOWEXECUTIONPLAN(Transact-SQL)

적용 대상: Azure Synapse Analytics Analytics Platform 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 )
[;]

참고

이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

인수

distribution_id

쿼리 계획을 실행하는 분포에 대한 식별자입니다. 이는 NULL이 아닌 정수여야 합니다. 값은 1에서 60 사이여야 합니다. Azure Synapse Analytics를 대상으로 할 때 사용합니다.

pdw_node_id

쿼리 계획을 실행하는 노드에 대한 식별자입니다. 이는 NULL이 아닌 정수여야 합니다. 어플라이언스를 대상으로 할 때 사용합니다.

spid

쿼리 계획을 실행하는 SQL Server 세션에 대한 식별자입니다. 이는 NULL이 아닌 정수여야 합니다.

사용 권한

Azure Synapse Analytics에 대한 CONTROL 권한이 필요합니다.

어플라이언스에서 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)

B. DBCC PDW_SHOWEXECUTIONPLAN 기본 구문

너무 오래 실행되는 쿼리는 DMS 쿼리 계획 작업 또는 SQL 쿼리 계획 작업을 실행 중입니다.

쿼리가 DMS 쿼리 계획 작업을 실행 중인 경우 다음 쿼리를 사용하여 완료되지 않은 단계에 대한 노드 ID 및 세션 ID의 목록을 검색할 수 있습니다.

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_spidpdw_node_id을(를) DBCC PDW_SHOWEXECUTIONPLAN에 대한 매개 변수로 사용합니다. 예를 들어 다음 명령은 pdw_node_id 201001 및 sql_spid 375에 대한 실행 계획을 보여 줍니다.

DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);

다음 단계