I SQL Server kan du använda SET STATISTICS XML
sats för att generera detaljerad information om hur en T-SQL-sats exekveras.
Denna information tillhandahålls i form av ett välformaterat XML-dokument.
En gång SET STATISTICS XML
är inställd på ON
, återspeglas varje efterföljande uttalande i utdata av ett enda XML-dokument.
Varje XML-dokument innehåller texten i satsen, följt av detaljerna om exekveringsstegen.
Utdata visar körtidsinformation såsom kostnader, tillgängliga index och typer av utförda operationer, sammanfogningsordning, antalet gånger en fysisk operation utförs, antalet rader som varje fysisk operatör producerade och mer.
Exempel
Här är ett enkelt exempel att visa.
SET STATISTICS XML ON;
SELECT
c.CityName,
s.StateProvinceName AS State,
c.LatestRecordedPopulation AS Population
FROM Application.Cities c
INNER JOIN Application.StateProvinces s
ON c.StateProvinceID = s.StateProvinceID
WHERE c.LatestRecordedPopulation > 2000000
ORDER BY c.LatestRecordedPopulation DESC;
Resultat:
När du gör detta med ett grafiskt verktyg som SSMS eller Azure Data Studio (bilden) kommer du förmodligen att se en grafisk frågeplan som den på skärmdumpen.
I det här fallet kommer du förmodligen att kunna klicka på olika flikar för att se de faktiska resultaten, såväl som annan statistikdata.
Här är vad som händer när jag klickar på Resultat tab:
I det här fallet får jag se de faktiska resultaten, plus ytterligare en rad med XML Showplan. Genom att klicka på den raden öppnas XML-dokumentet i ett nytt fönster:
Och det här är vad som händer när jag klickar på Topoperationer tab:
Hur man stänger av det
Ställer in STATISTICS XML
till ON
påverkar alla efterföljande T-SQL-satser tills den stängs av.
För att stänga av det, kör det helt enkelt igen med OFF
istället för ON
:
SET STATISTICS XML OFF;
STATISTICS XML
Ersätter STATISTICS PROFILE
Enligt Microsofts dokumentation, SET STATISTICS XML
ska användas istället för SET STATISTICS PROFILE
.
SET STATISTICS PROFILE och SET STATISTICS XML är motsvarigheter till varandra. Den förra producerar textutdata; den senare producerar XML-utdata. I framtida versioner av SQL Server kommer ny frågekörningsplansinformation endast att visas via SET STATISTICS XML-satsen, inte SET STATISTICS PROFILE-satsen.
STATISTIK XML vs Inkludera faktisk exekveringsplan
Om Inkludera faktisk utförandeplan väljs i SSMS, SET STATISTICS XML
producerar inte XML Showplan-utdata. Ta bort Inkludera faktisk utförandeplan innan du använder SET STATISTICS XML
.