Sdílet prostřednictvím


SET STATISTICS XML (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Způsobí, že Microsoft SQL Server vykoná Transact-SQL příkazy a vygeneruje podrobné informace o tom, jak byly příkazy vykonány, ve formě dobře definovaného XML dokumentu.

Transact-SQL konvence syntaxe

Syntaxe

  
SET STATISTICS XML { ON | OFF }  

Poznámky

Nastavení SET STATISTICS XML je nastaveno při spuštění nebo běhu a ne při parse.

Když je SET STATISTICS XML zapnutý, SQL Server po jeho spuštění vrací informace o vykonání pro každý příkaz. Po zapnutí této volby se vrací informace o všech následujících Transact-SQL příkazech, dokud není volba nastavena na VYPNUTO. Všimněte si, že SET STATISTICS XML nemusí být jediným příkazem v dávce.

SET STATISTICS XML vrací výstup jako nvarchar(max) pro aplikace, jako je utilita sqlcmd , kde XML výstup je následně využíván jinými nástroji k zobrazení a zpracování informací o plánu dotazu.

SET STATISTICS XML vrací informace jako sadu XML dokumentů. Každý příkaz po příkazu SET STATISTICS XML ON je zobrazen ve výstupu jediným dokumentem. Každý dokument obsahuje text příkazu, následovaný detaily postupů vykonání. Výstup ukazuje informace za běhu, jako jsou náklady, přístupné indexy a typy prováděných operací, pořadí spojení, počet provedení fyzické operace, počet řádků, které každý fyzický operátor vygeneroval, a další.

Dokument obsahující XML schéma pro XML výstup pomocí SET STATISTICS XML je při nastavení zkopírován do lokálního adresáře na počítači, na kterém je Microsoft SQL Server nainstalován. Lze jej najít na disku obsahujícím instalační soubory SQL Serveru, na:

\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

Showplan Schema lze také najít na této webové stránce.

SET STATISTICS PROFILE a SET STATISTICS XML jsou protiklady. První z nich vytváří textový výstup; druhý jmenovaný produkuje XML výstup. V budoucích verzích SQL Serveru budou nové informace o plánu provádění dotazu zobrazeny pouze prostřednictvím příkazu SET STATISTICS XML, nikoli příkazu SET STATISTICS PROFILE.

Poznámka:

Pokud zahrnout skutečný plán provádění je vybrán v aplikaci SQL Server Management Studio, tato možnost SET nevygeneruje výstup xml showplan. Před použitím této možnosti SET vymažte tlačítko Zahrnout skutečný plán provádění.

Povolení

Pro použití SET STATISTICS XML a zobrazení výstupu musí mít uživatelé následující oprávnění:

  • Příslušná oprávnění pro provádění Transact-SQL příkazů.

  • Povolení SHOWPLAN pro všechny databáze obsahující objekty, na které odkazují Transact-SQL příkazy.

Pro Transact-SQL příkazy, které nevytvářejí XML sady výsledků STATISTICS, jsou vyžadována pouze příslušná oprávnění k vykonání Transact-SQL příkazů. Pro Transact-SQL příkazy, které skutečně vytvářejí XML výsledky STATISTICS, musí být ověření jak oprávnění pro provádění příkazu Transact-SQL, tak pro SHOWPLAN musí uspět, jinak je spuštění Transact-SQL příkazu přerušeno a nejsou generovány žádné informace ze Showplanu.

Examples

Následující dva výroky používají nastavení SET STATISTICS XML k ukázání, jak SQL Server analyzuje a optimalizuje využití indexů v dotazech. První dotaz používá operátor Equals (=) v klauzuli WHERE na indexovaném sloupci. Druhý dotaz používá operátor LIKE v klauzuli WHERE. To nutí SQL Server použít shlukový indexový sken, aby našel data, která splňují podmínku klauzule WHERE. Hodnoty v atributech EstimateRows a EstimatedTotalSubtreeCost jsou menší pro první indexovaný dotaz, což naznačuje, že byl zpracován mnohem rychleji a spotřeboval méně zdrojů než neindexovaný dotaz.

USE AdventureWorks2022;  
GO  
SET STATISTICS XML ON;  
GO  
-- First query.  
SELECT BusinessEntityID   
FROM HumanResources.Employee  
WHERE NationalIDNumber = '509647174';  
GO  
-- Second query.  
SELECT BusinessEntityID, JobTitle   
FROM HumanResources.Employee  
WHERE JobTitle LIKE 'Production%';  
GO  
SET STATISTICS XML OFF;  
GO  

Viz také

NASTAV SHOWPLAN_XML (Transact-SQL)
Nástroj sqlcmd