Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:Azure Synapse Analytics
Analytics Platform System (PDW)
Visar SQL Server-körningsplanen för en fråga som körs på en specifik Beräkningsnod för Azure Synapse Analytics eller Analysplattformssystem (PDW) eller kontrollnod. Använd det här alternativet för att felsöka problem med frågeprestanda när frågor körs på beräkningsnoderna och kontrollnoden.
När problem med frågeprestanda förstås för SMP SQL Server-frågor som körs på beräkningsnoderna finns det flera sätt att förbättra prestanda. Möjliga sätt att förbättra frågeprestanda på beräkningsnoderna är att skapa statistik med flera kolumner, skapa icke-illustrerade index eller använda frågetips.
Transact-SQL syntaxkonventioner
Syntax
Syntax för Azure Synapse Analytics:
DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]
Syntax för Analysplattformssystem (PDW):
DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]
Not
Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
Argument
distribution_id
Identifierare för den distribution som kör frågeplanen. Det här är ett heltal och kan inte NULL. Värdet måste vara mellan 1 och 60. Används när du riktar in dig på Azure Synapse Analytics.
pdw_node_id
Identifierare för den nod som kör frågeplanen. Det här är ett heltal och kan inte NULL. Används när du riktar in dig på en installation.
spid
Identifierare för SQL Server-sessionen som kör frågeplanen. Det här är ett heltal och kan inte NULL.
Behörigheter
Kräver KONTROLL-behörighet för Azure Synapse Analytics.
Kräver VISA SERVERTILLSTÅND behörighet för installationen.
Exempel: Azure Synapse Analytics
A. Grundläggande syntax för DBCC PDW_SHOWEXECUTIONPLAN
Följande exempelfråga returnerar sql_spid för varje aktivt löpande distribution.
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];
Om du är nyfiken på vad distribution_id 1 körde i session 375 skulle du köra följande kommando:
DBCC PDW_SHOWEXECUTIONPLAN (1, 375);
Exempel: Analysplattformssystem (PDW)
B. Grundläggande syntax för DBCC PDW_SHOWEXECUTIONPLAN
Frågan som körs för länge kör antingen en DMS-frågeplansåtgärd eller en SQL-frågeplansåtgärd.
Om frågan kör en DMS-frågeplansåtgärd kan du använda följande fråga för att hämta en lista över nod-ID:t och sessions-ID:t för steg som inte är slutförda.
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];
Baserat på resultatet av föregående fråga använder du sql_spid och pdw_node_id som parametrar för att DBCC PDW_SHOWEXECUTIONPLAN. Följande kommando visar till exempel körningsplanen för pdw_node_id 201001 och sql_spid 375.
DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);