DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)
Dotyczy:azure Synapse Analytics
Analytics 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);