Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
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);