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

Che cos'è STATISTICS XML in SQL Server?

In SQL Server è possibile utilizzare SET STATISTICS XML per generare informazioni dettagliate su come è stata eseguita un'istruzione T-SQL.

Queste informazioni sono fornite sotto forma di un documento XML ben formato.

Una volta SET STATISTICS XML è impostato su ON , ogni istruzione successiva viene riflessa nell'output di un singolo documento XML.

Ciascun documento XML contiene il testo dell'istruzione, seguito dai dettagli delle fasi di esecuzione.

L'output mostra informazioni di runtime come i costi, gli indici di accesso e i tipi di operazioni eseguite, l'ordine di unione, il numero di volte in cui viene eseguita un'operazione fisica, il numero di righe prodotte da ciascun operatore fisico e altro ancora.

Esempio

Ecco un semplice esempio da dimostrare.

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;

Risultato:

Quando esegui questa operazione utilizzando uno strumento grafico come SSMS o Azure Data Studio (nella foto), probabilmente vedrai un piano di query grafico come quello nello screenshot.

In questo caso, probabilmente sarai in grado di fare clic su varie schede per vedere i risultati effettivi, oltre ad altri dati statistici.

Ecco cosa succede quando faccio clic su Risultati scheda:

In questo caso posso vedere i risultati effettivi, più un'altra riga con lo Showplan XML. Cliccando su quella riga si apre il documento XML in una nuova finestra:

Ed ecco cosa succede quando faccio clic su Operazioni principali scheda:

Come spegnerlo

Impostazione di STATISTICS XML su ON influisce su tutte le istruzioni T-SQL successive finché non viene disattivata.

Per disattivarlo, eseguilo di nuovo usando OFF invece di ON :

SET STATISTICS XML OFF;

STATISTICS XML Sostituisce STATISTICS PROFILE

Secondo la documentazione Microsoft, SET STATISTICS XML dovrebbe essere usato al posto di SET STATISTICS PROFILE .

SET STATISTICS PROFILE e SET STATISTICS XML sono controparti l'uno dell'altro. Il primo produce output testuale; quest'ultimo produce output XML. Nelle versioni future di SQL Server, le nuove informazioni sul piano di esecuzione delle query verranno visualizzate solo tramite l'istruzione SET STATISTICS XML, non l'istruzione SET STATISTICS PROFILE.

STATISTICHE XML e inclusione del piano di esecuzione effettivo

Se Includi il piano di esecuzione effettivo è selezionato in SSMS, SET STATISTICS XML non produce output Showplan XML. Deseleziona Includi piano di esecuzione effettivo prima di usare SET STATISTICS XML .