sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er STATISTICS XML i SQL Server?

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 .


  1. Er det muligt at sammenkæde kolonneværdier i en streng ved hjælp af CTE?

  2. Sjovt med (columnstore) komprimering på et meget stort bord – del 3

  3. Automatiseret test af opgraderingsprocessen til PostgreSQL

  4. Hvordan skriver man en lagret procedure ved hjælp af phpmyadmin, og hvordan bruger man den gennem php?