DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)

platí pro: Azure Synapse AnalyticsAnalytics Platform System (PDW)

Zobrazuje plán provádění SQL Server pro dotaz běžící na konkrétním uzlu Azure Synapse Analytics nebo Analytics Platform System (PDW) Compute nebo Control uzlu. Použijte to k řešení problémů s výkonem dotazů, když dotazy běží na Compute uzlech a Control uzlech.

Jakmile jsou pochopeny problémy s výkonem dotazů pro SMP SQL Server spuštěné na Compute uzlech, existuje několik způsobů, jak zlepšit výkon. Možné způsoby, jak zlepšit výkon dotazů na uzlech Compute, zahrnují vytváření vícesloupcových statistik, vytváření neklastrovaných indexů nebo použití hintů pro dotazy.

Transact-SQL konvence syntaxe

Syntax

Syntaxe pro Azure Synapse Analytics:

DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]

Syntaxe systému analytických platforem (PDW):

DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]

Note

Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Arguments

distribution_id

Identifikátor distribuce, která spouští plán dotazů. Toto je celé číslo a nemůže být NULL. Hodnota musí být mezi 1 a 60. Používá se při cílení Azure Synapse Analytics.

pdw_node_id

Identifikátor uzlu, který provádí plán dotazu. Toto je celé číslo a nemůže být NULL. Používá se při cílení na spotřebič.

SPID

Identifikátor pro relaci SQL Server, která spouští plán dotazu. Toto je celé číslo a nemůže být NULL.

Permissions

Vyžaduje CONTROL oprávnění na Azure Synapse Analytics.

Vyžaduje VIEW oprávnění SERVER STATE na zařízení.

Příklady: Azure Synapse Analytics

A. DBCC PDW_SHOWEXECUTIONPLAN základní syntaxe

Následující ukázkový dotaz vrátí pro sql_spid každou aktivně běžící distribuci.

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

Pokud vás zajímá, co distribution_id 1 běželo v session 375, spustíte následující příkaz:

DBCC PDW_SHOWEXECUTIONPLAN (1, 375);

Příklady: Systém analytických platforem (PDW)

B. DBCC PDW_SHOWEXECUTIONPLAN základní syntaxe

Dotaz, který běží příliš dlouho, je buď operace DMS dotazovacího plánu, nebo SQL dotazovacího plánu.

Pokud dotaz spouští operaci DMS plánu dotazů, můžete použít následující dotaz k získání seznamu ID uzlů a ID relací pro kroky, které nejsou dokončeny.

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 základě výsledků předchozího dotazu použijeme sql_spid a pdw_node_id jako parametry k DBCC PDW_SHOWEXECUTIONPLAN. Například následující příkaz ukazuje plán provedení pro pdw_node_id 201001 a sql_spid 375.

DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);

Další kroky