DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)

Gilt für:Azure Synapse AnalyticsAnalytics Platform System (PDW)

Zeigt den SQL Server-Ausführungsplan für eine Abfrage an, die auf einem bestimmten Azure Synapse Analytics- oder Analytics-Plattformsystem (PDW)-Computeknoten oder -Steuerknoten ausgeführt wird. Verwenden Sie diese Funktion zum Behandeln von Problemen mit der Abfrageleistung, während Abfragen auf Compute- oder Steuerknoten ausgeführt werden.

Sobald Sie verstanden haben, wodurch Leistungsprobleme bei Abfragen für SMP-SQL Server-Abfragen auf den Computeknoten entstehen, können Sie diese Probleme auf verschiedene Weisen verbessern. Beispielsweise können Sie die Abfrageleistung auf Computeknoten verbessern, indem Sie Statistiken mit mehreren Spalten oder nicht gruppierte Indizes erstellen bzw. Abfragehinweise verwenden.

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für Azure Synapse Analytics:

DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]

Syntax für Analytics-Plattformsystem (PDW):

DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]

Hinweis

Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

Argumente

distribution_id

Bezeichner für die Verteilung, die den Abfrageplan ausführt. Dabei handelt es sich um einen Integer, der nicht NULL sein kann. Der Wert muss zwischen 1 und 60 liegen. Dieser Bezeichner wird verwendet, wenn für Azure Synapse Analytics entwickelt wird.

pdw_node_id

Bezeichner für den Knoten, der den Abfrageplan ausführt. Dabei handelt es sich um einen Integer, der nicht NULL sein kann. Wird verwendet, wenn eine Anwendung entwickelt wird.

spid

Bezeichner für die SQL Server-Sitzung, die den Abfrageplan ausführt. Dabei handelt es sich um einen Integer, der nicht NULL sein kann.

Berechtigungen

Erfordert die CONTROL-Berechtigung auf Azure Synapse Analytics.

Erfordert die VIEW-SERVER-STATE-Berechtigung auf die Anwendung.

Beispiele: Azure Synapse Analytics

A. Grundlegende DBCC-PDW_SHOWEXECUTIONPLAN-Syntax

Die folgende Beispielabfrage gibt die sql_spid für jede aktiv ausgeführte Verteilung zurück.

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

Wenn Sie gerne wissen möchten, was distribution_id 1 in Sitzung 375 ausgeführt hat, können Sie den folgenden Befehl ausführen:

DBCC PDW_SHOWEXECUTIONPLAN (1, 375);

Beispiele: Analytics-Plattformsystem (PDW)

B. Grundlegende DBCC-PDW_SHOWEXECUTIONPLAN-Syntax

Die Abfrage, die zu lange ausgeführt wird, führt entweder einen Vorgang für einen DMS-Abfrageplan oder für einen SQL-Abfrageplan aus.

Wenn die Abfrage einen Vorgang für einen DMS-Abfrageplan ausführt. können Sie die folgende Abfrage verwenden, um eine Liste der Knoten- und Sitzungs-IDs für noch nicht abgeschlossene Schritte abzufragen.

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

Verwenden Sie basierend auf den Ergebnissen der vorangehenden Abfrage die sql_spid und pdw_node_id als Parameter für DBCC PDW_SHOWEXECUTIONPLAN. Beispielsweise zeigt das folgende Beispiel den Ausführungsplan für pdw_node_id 201001 und sql_spid 375.

DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);

Nächste Schritte