I SQL Server kan du bruge SET STATISTICS XML
sætning for at generere detaljerede oplysninger om, hvordan en T-SQL-sætning blev udført.
Disse oplysninger gives i form af et veludformet XML-dokument.
En gang SET STATISTICS XML
er indstillet til ON
, afspejles hver efterfølgende sætning i outputtet af et enkelt XML-dokument.
Hvert XML-dokument indeholder teksten i erklæringen efterfulgt af detaljerne i udførelsestrinene.
Outputtet viser runtime-oplysninger såsom omkostninger, tilgåede indekser og typer af udførte operationer, join-ordre, antallet af gange en fysisk operation udføres, antallet af rækker, hver fysisk operatør producerede og mere.
Eksempel
Her er et simpelt eksempel at demonstrere.
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 dette ved hjælp af et grafisk værktøj såsom SSMS eller Azure Data Studio (billedet), vil du sandsynligvis se en grafisk forespørgselsplan som den på skærmbilledet.
I dette tilfælde vil du sandsynligvis være i stand til at klikke på forskellige faner for at se de faktiske resultater, samt andre statistiske data.
Her er, hvad der sker, når jeg klikker på Resultater fanen:
I dette tilfælde får jeg at se de faktiske resultater, plus en anden række med XML Showplan. Ved at klikke på den række åbnes XML-dokumentet i et nyt vindue:
Og her er, hvad der sker, når jeg klikker på Tophandlinger fanen:
Sådan slukker du det
Indstilling af STATISTICS XML
til ON
påvirker alle efterfølgende T-SQL-sætninger, indtil den slås fra.
For at slå det fra skal du blot køre det igen ved at bruge OFF
i stedet for ON
:
SET STATISTICS XML OFF;
STATISTICS XML
Erstatter STATISTICS PROFILE
I henhold til Microsoft-dokumentationen, SET STATISTICS XML
skal bruges i stedet for SET STATISTICS PROFILE
.
SET STATISTICS PROFIL og SET STATISTICS XML er modstykker til hinanden. Førstnævnte producerer tekstoutput; sidstnævnte producerer XML-output. I fremtidige versioner af SQL Server vil nye planoplysninger om udførelse af forespørgsler kun blive vist gennem SET STATISTICS XML-sætningen, ikke SET STATISTICS PROFILE-sætningen.
STATISTIK XML vs. Inkluder faktisk eksekveringsplan
Hvis Medtag faktisk udførelsesplan er valgt i SSMS, SET STATISTICS XML
producerer ikke XML Showplan-output. Ryd Inkluder faktisk udførelsesplan knappen, før du bruger SET STATISTICS XML
.