Showplan XML
In Microsoft SQL Server sono disponibili diversi metodi per generare l'output del piano di esecuzione Showplan in formato XML. L'output Showplan in formato XML può quindi essere spostato da un computer a un altro e quindi visualizzato su un qualsiasi computer, anche uno in cui SQL Server non è installato. È anche possibile elaborare l'output Showplan in formato XML a livello di programmazione utilizzando tecnologie XML, quali XPath, XQuery, XSLT, SAX, DOM e così via. L'elaborazione di Showplan XML è supportata in SQL Server, che contiene un motore di valutazione delle query incorporato per XPath e XQuery.
Per generare l'output Showplan XML, è possibile utilizzare i metodi seguenti:
Fare clic sul pulsante Visualizza piano di esecuzione stimato o Includi piano di esecuzione effettivo della barra degli strumenti dell'editor di query in SQL Server Management Studio
Utilizzare le opzioni SHOWPLAN_XML e STATISTICS XML dell'istruzione SET di Showplan Transact-SQL.
Selezionare le classi di evento Showplan XML, Showplan XML for Query Compile e Showplan XML Statistics Profile di SQL Server Profiler per la traccia.
Utilizzare la funzione a gestione dinamica sys.dm_exec_query_plan.
Gli Showplan XML vengono restituiti nel tipo di dati nvarchar(max) per tutti questi metodi, ad eccezione del caso in cui viene utilizzato sys.dm_exec_query_plan. Quando si utilizza questa vista a gestione dinamica, gli Showplan XML vengono restituiti nel tipo di dati xml.
Lo schema XML per Showplan è disponibile con i file di installazione di SQL Server nel percorso seguente:
C:\Programmi\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
[!NOTA]
Se Query Optimizer interrompe in modo anomalo l'ottimizzazione delle query, l'attributo StatementOptmEarlyAbortReason viene restituito per l'elemento StmtSimple nell'output Showplan XML. I valori possibili visualizzabili per questo attributo sono TimeOut, GoodEnoughPlanFound e MemoryLimitExceeded. Se TimeOut o GoodEnoughPlanFound viene restituito per l'attributo, non è necessaria alcuna operazione. Lo Showplan restituito include i risultati corretti.
Se MemoryLimitExceeded viene restituito per l'attributo StatementOptmEarlyAbortReason, lo Showplan XML generato sarà comunque corretto, ma potrebbe non essere quello ottimale. Tentare uno dei metodi seguenti per aumentare la memoria disponibile: 1) ridurre il carico sul server. 2) Aumentare la memoria disponibile per SQL Server. Per ulteriori informazioni, vedere Gestione della memoria per database di grandi dimensioni. 3) Selezionare l'opzione max server memory impostata con sp_configure e aumentare il valore nel caso sia troppo basso. Per ulteriori informazioni, vedere Opzioni per la memoria server.
Informazioni sullo schema XML dello Showplan
L'indicazione della versione dello schema XML dello Showplan include due parti, ad esempio m.n, dove m corrisponde al numero di versione principale e n al numero di versione secondario, ad esempio "Version 2.5". Questo numero di versione è visualizzato nell'elemento radice dello schema XML dello Showplan. Ad esempio: version="0.5"version="0.5"
Compatibilità con le versioni precedenti di schemi XML dello Showplan
Quando il numero di versione principale viene incrementato, è possibile che il nuovo output dello Showplan XML non venga convalidato in base al vecchio schema. L'incremento del numero di versione secondario non produce tuttavia alcun effetto. Se ad esempio l'output dello Showplan XML è stato generato con la versione 0.5 dello schema, verrà convalidato in base alla versione 0.6 di uno schema XML dello Showplan.
Codifica degli Showplan XML
In SQL Server l'output dello Showplan XML viene inviato al client in formato Unicode utilizzando due byte per ciascun carattere. Le regole di codifica sono le seguenti:
If (char >= 0x0020 && char <= 0xD7FF) or (char == 0x0009) or
(char == 0x000A) or (char == 0x000D) or (char >= 0xE000 && char <= 0xFFFD)
then send the char as 2 bytes, else send '?'
I caratteri di tabulazione, nuova riga e ritorno a capo vengono codificati nel modo seguente:
\t viene codificato in '	'
\n viene codificato in '
'
\r viene codificato in '
'
Salvataggio dell'output dello Showplan XML in un file
Dopo aver generato l'output dello Showplan utilizzando le istruzioni SET SHOWPLAN_XML o STATISTICS XML di Transact-SQL, è possibile salvare l'output in un file con estensione sqlplan, ad esempio MyXMLShowplan.sqlplan. I file con estensione sqlplan possono quindi essere aperti e visualizzati in SQL Server Management Studio. Per ulteriori informazioni, vedere Procedura: Salvataggio di un piano di esecuzione in formato XML.
Vedere anche