SET STATISTICS XML (Transact-SQL)
Fa sì che Microsoft SQL Server esegua istruzioni Transact-SQL e generi informazioni dettagliate sull'esecuzione delle istruzioni in un documento XML ben definito.
Sintassi
SET STATISTICS XML { ON | OFF }
Osservazioni
L'opzione SET STATISTICS XML viene impostata in fase di esecuzione, non in fase di analisi.
Se SET STATISTICS XML è impostata su ON, SQL Server restituisce informazioni sull'esecuzione di ogni istruzione. Quando l'opzione viene impostata su ON, vengono restituite informazioni su tutte le istruzioni Transact-SQL successive fino a quando l'opzione non viene impostata su OFF. Non è necessario che SET STATISTICS XML sia l'unica istruzione in un batch.
SET STATISTICS XML restituisce l'output come tipo nvarchar(max) per le applicazioni, come l'utilità sqlcmd, in cui l'output XML viene successivamente utilizzato da altri strumenti per visualizzare ed elaborare le informazioni del piano di query.
SET STATISTICS XML restituisce le informazioni sotto forma di documenti XML. Ogni istruzione successiva all'istruzione SET STATISTICS XML ON è rappresentata nell'output da un documento specifico. Ogni documento contiene il testo dell'istruzione, seguito da informazioni dettagliate sui passaggi dell'esecuzione. L'output include informazioni ottenute durante l'esecuzione, quali i costi, gli indici utilizzati e i tipi di operazioni eseguite, l'ordine di join, il numero di esecuzioni di un'operazione fisica, il numero di righe prodotto da ogni operatore fisico e altro ancora.
Il documento contenente lo schema XML per l'output XML di SET STATISTICS XML viene copiato, durante l'installazione, in una directory locale del computer in cui è installato Microsoft SQL Server. Si trova nell'unità contenente i file di installazione di SQL Server, nel percorso seguente:
\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
Lo schema Showplan è inoltre reperibile in questo sito Web.
SET STATISTICS PROFILE e SET STATISTICS XML sono complementari. La prima crea output di testo, la seconda output XML. Nelle prossime versioni di SQL Server, le informazioni sui piani di esecuzione delle query verranno visualizzate solo mediante l'istruzione SET STATISTICS XML e non mediante l'istruzione SET STATISTICS PROFILE.
[!NOTA]
Se Includi piano di esecuzione effettivo è selezionato in SQL Server Management Studio, l'opzione SET non genera alcun output di Showplan XML. Prima di utilizzare l'opzione SET, deselezionare il pulsante Includi piano di esecuzione effettivo.
Autorizzazioni
Per utilizzare SET STATISTICS XML e visualizzare l'output, è necessario che gli utenti dispongano delle autorizzazioni seguenti:
Autorizzazioni appropriate per l'esecuzione delle istruzioni Transact-SQL.
Autorizzazione SHOWPLAN in tutti i database contenenti gli oggetti a cui viene fatto riferimento dalle istruzioni Transact-SQL.
Per le istruzioni Transact-SQL che non producono set di risultati STATISTICS XML, sono necessarie solo le autorizzazioni appropriate per l'esecuzione delle istruzioni Transact-SQL. Per le istruzioni Transact-SQL che producono set di risultati STATISTICS XML, devono venire superati i controlli sia dell'autorizzazione di esecuzione delle istruzioni Transact-SQL sia dell'autorizzazione SHOWPLAN. Negli altri casi l'esecuzione delle istruzioni Transact-SQL verrà annullata e non verranno generate informazioni Showplan.
Per ulteriori informazioni, vedere Aspetti di protezione relativi a Showplan e Autorizzazione SHOWPLAN e batch di comandi Transact-SQL.
Esempi
Nelle due istruzioni seguenti vengono utilizzate le impostazioni dell'istruzione SET STATISTICS XML per illustrare l'analisi e l'ottimizzazione dell'utilizzo degli indici nelle query da parte di SQL Server. La prima query utilizza l'operatore di confronto uguale a (=) nella clausola WHERE in una colonna indicizzata. La seconda query utilizza l'operatore LIKE nella clausola WHERE. In tal modo viene imposta l'esecuzione da parte di SQL Serverdi una scansione di indice cluster per individuare i dati che soddisfano la condizione della clausola WHERE. I valori negli attributi EstimateRows e EstimatedTotalSubtreeCost della prima query indicizzata sono inferiori, a indicare che la query è stata elaborata molto più rapidamente e con un numero di risorse inferiore rispetto alla query non indicizzata.
USE AdventureWorks;
GO
SET STATISTICS XML ON;
GO
-- First query.
SELECT EmployeeID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT EmployeeID, Title
FROM HumanResources.Employee
WHERE Title LIKE 'Production%';
GO
SET STATISTICS XML OFF;
GO
Vedere anche