Udostępnij za pośrednictwem


DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)

Dotyczy:azure Synapse AnalyticsAnalytics Platform System (PDW)

Przedstawia plan wykonywania programu SQL Server dla zapytania uruchomionego w określonym węźle obliczeniowym usługi Azure Synapse Analytics lub w węźle obliczeniowym systemu platformy analizy (PDW). Służy do rozwiązywania problemów z wydajnością zapytań podczas uruchamiania zapytań w węzłach obliczeniowych i węźle kontrolnym.

Gdy problemy z wydajnością zapytań są zrozumiałe dla zapytań programu SQL Server SMP uruchomionych w węzłach obliczeniowych, istnieje kilka sposobów poprawy wydajności. Możliwe sposoby poprawy wydajności zapytań w węzłach obliczeniowych obejmują tworzenie statystyk wielokolumnach, tworzenie indeksów nieklastrowanych lub używanie wskazówek dotyczących zapytań.

Transact-SQL konwencje składni

Składnia

Składnia usługi Azure Synapse Analytics:

DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]

Składnia systemu platformy analizy (PDW):

DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]

Nuta

Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Argumenty

distribution_id

Identyfikator dystrybucji, która uruchamia plan zapytania. Jest to liczba całkowita i nie można jej NULL. Wartość musi należeć do zakresu od 1 do 60. Używane podczas określania wartości docelowej dla usługi Azure Synapse Analytics.

pdw_node_id

Identyfikator węzła, w którym jest uruchomiony plan zapytania. Jest to liczba całkowita i nie można jej NULL. Używane podczas określania wartości docelowej urządzenia.

spid

Identyfikator sesji programu SQL Server, która uruchamia plan zapytania. Jest to liczba całkowita i nie można jej NULL.

Uprawnienia

Wymaga uprawnień CONTROL w usłudze Azure Synapse Analytics.

Wymaga uprawnień VIEW SERVER STATE na urządzeniu.

Przykłady: Azure Synapse Analytics

A. DbCC PDW_SHOWEXECUTIONPLAN podstawowa składnia

Następujące przykładowe zapytanie zwróci sql_spid dla każdej aktywnej dystrybucji.

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

Jeśli zastanawiasz się, co distribution_id 1 było uruchomione w sesji 375, uruchom następujące polecenie:

DBCC PDW_SHOWEXECUTIONPLAN (1, 375);

Przykłady: Analytics Platform System (PDW)

B. DbCC PDW_SHOWEXECUTIONPLAN podstawowa składnia

Zapytanie, które działa zbyt długo, uruchamia operację planu zapytania DMS lub operację planu zapytania SQL.

Jeśli zapytanie uruchamia operację planu zapytania USŁUGI DMS, możesz użyć następującego zapytania, aby pobrać listę identyfikatorów węzłów i identyfikatorów sesji dla kroków, które nie zostały ukończone.

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

Na podstawie wyników poprzedniego zapytania użyj sql_spid i pdw_node_id jako parametrów, aby DBCC PDW_SHOWEXECUTIONPLAN. Na przykład następujące polecenie przedstawia plan wykonywania dla pdw_node_id 201001 i sql_spid 375.

DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);

Następne kroki