Delen via


DBCC-PDW_SHOWEXECUTIONPLAN (Transact-SQL)

van toepassing op:Azure Synapse AnalyticsAnalytics Platform System (PDW)

Geeft het SQL Server-uitvoeringsplan weer voor een query die wordt uitgevoerd op een specifiek Rekenknooppunt van Azure Synapse Analytics of Analytics Platform System (PDW). Gebruik dit om queryprestaties op te lossen terwijl query's worden uitgevoerd op de rekenknooppunten en het beheerknooppunt.

Zodra queryprestaties zijn begrepen voor SMP SQL Server-query's die worden uitgevoerd op de rekenknooppunten, zijn er verschillende manieren om de prestaties te verbeteren. Mogelijke manieren om queryprestaties op de rekenknooppunten te verbeteren, zijn het maken van statistieken met meerdere kolommen, het maken van niet-geclusterde indexen of het gebruik van queryhints.

Transact-SQL syntaxisconventies

Syntaxis

Syntaxis voor Azure Synapse Analytics:

DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]

Syntaxis voor Analytics Platform System (PDW):

DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]

Notitie

Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Argumenten

distribution_id

Id voor de distributie waarop het queryplan wordt uitgevoerd. Dit is een geheel getal en kan niet worden NULL. De waarde moet tussen 1 en 60 zijn. Wordt gebruikt bij het richten van Azure Synapse Analytics.

pdw_node_id

Id voor het knooppunt waarop het queryplan wordt uitgevoerd. Dit is een geheel getal en kan niet worden NULL. Wordt gebruikt bij het richten van een apparaat.

Id voor de SQL Server-sessie waarop het queryplan wordt uitgevoerd. Dit is een geheel getal en kan niet worden NULL.

Machtigingen

Hiervoor is control-machtiging vereist voor Azure Synapse Analytics.

Vereist VIEW SERVER STATE machtiging op het apparaat.

Voorbeelden: Azure Synapse Analytics

Een. DBCC PDW_SHOWEXECUTIONPLAN basissyntaxis

De volgende voorbeeldquery retourneert de sql_spid voor elke actief actieve distributie.

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

Als u wilt weten wat distribution_id 1 in sessie 375 werd uitgevoerd, voert u de volgende opdracht uit:

DBCC PDW_SHOWEXECUTIONPLAN (1, 375);

Voorbeelden: Analytics Platform System (PDW)

B. DBCC PDW_SHOWEXECUTIONPLAN basissyntaxis

De query die te lang wordt uitgevoerd, is het uitvoeren van een DMS-queryplanbewerking of een SQL-queryplanbewerking.

Als de query een DMS-queryplanbewerking uitvoert, kunt u de volgende query gebruiken om een lijst met de knooppunt-id's en sessie-id's op te halen voor stappen die niet zijn voltooid.

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

Gebruik op basis van de resultaten van de voorgaande query de sql_spid en pdw_node_id als parameters om te DBCC PDW_SHOWEXECUTIONPLAN. Met de volgende opdracht ziet u bijvoorbeeld het uitvoeringsplan voor pdw_node_id 201001 en sql_spid 375.

DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);

Volgende stappen