Delen via


SET STATISTIEKEN XML (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Zorgt ervoor dat Microsoft SQL Server Transact-SQL statements uitvoert en gedetailleerde informatie genereert over hoe de statements zijn uitgevoerd in de vorm van een goed gedefinieerd XML-document.

Transact-SQL syntaxis-conventies

Syntaxis

  
SET STATISTICS XML { ON | OFF }  

Opmerkingen

De instelling van SET STATISTICS XML wordt ingesteld tijdens uitvoeren of uitvoeren en niet tijdens parsetijd.

Wanneer SET STATISTICS XML AAN staat, geeft SQL Server na uitvoering uitvoeringsinformatie terug voor elke instructie. Nadat deze optie AAN is gezet, wordt informatie over alle volgende Transact-SQL-instructies teruggegeven totdat de optie op UIT staat. Let op dat SET STATISTICS XML niet de enige instructie in een batch hoeft te zijn.

SET STATISTICS XML geeft uitvoer terug als nvarchar(max) voor applicaties, zoals het sqlcmd-hulpprogramma , waarbij de XML-uitvoer vervolgens door andere tools wordt gebruikt om de queryplan-informatie weer te geven en te verwerken.

SET STATISTICS XML geeft informatie terug als een set XML-documenten. Elke instructie na de SET STATISTICS XML ON-instructie wordt weerspiegeld in de output door één enkel document. Elk document bevat de tekst van de verklaring, gevolgd door de details van de uitvoeringsstappen. De output toont runtime-informatie zoals de kosten, geraadpleegde indexen en soorten uitgevoerde bewerkingen, join-volgorde, het aantal keren dat een fysieke bewerking wordt uitgevoerd, het aantal rijen dat elke fysieke operator produceerde, en meer.

Het document dat het XML-schema bevat voor de XML-uitvoer van SET STATISTICS XML wordt tijdens de installatie gekopieerd naar een lokale map op de computer waarop Microsoft SQL Server is geïnstalleerd. Het is te vinden op de schijf met de SQL Server-installatiebestanden, op:

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

Het Showplan-schema is ook te vinden op deze website.

SET STATISTICS PROFILE en SET STATISTICS XML zijn elkaars tegenhangers. De eerste produceert tekstuele output; de laatste produceert XML-uitvoer. In toekomstige versies van SQL Server wordt de informatie van het nieuwe query-uitvoeringsplan alleen weergegeven via de SET STATISTICS XML-instructie, niet via de SET STATISTICS PROFILE-instructie.

Opmerking

Als Werkelijke uitvoeringsplan opnemen is geselecteerd in SQL Server Management Studio, produceert deze SET-optie geen XML Showplan-uitvoer. Wis de knop Werkelijke uitvoeringsplan opnemen voordat u deze SET-optie gebruikt.

Permissions

Om SET STATISTICS XML te gebruiken en de output te bekijken, moeten gebruikers de volgende rechten hebben:

  • Passende permissies om de Transact-SQL-statements uit te voeren.

  • SHOWPLAN-toestemming op alle databases die objecten bevatten die worden aangeduid door de Transact-SQL-instructies.

Voor Transact-SQL statements die geen STATISTICS XML-resultaatsets produceren, zijn alleen de juiste rechten vereist om de Transact-SQL statements uit te voeren. Voor Transact-SQL statements die wel STATISTICS XML-resultaatsets produceren, moeten controles op zowel de Transact-SQL-instructie-uitvoeringsmachtiging als de SHOWPLAN-toestemming slagen, anders wordt de uitvoering van Transact-SQL statement afgebroken en wordt er geen Showplan-informatie gegenereerd.

Voorbeelden

De twee onderstaande statements gebruiken de SET STATISTICS XML-instellingen om te laten zien hoe SQL Server indexen analyseert en optimaliseert in queries. De eerste query gebruikt de Equals (=) vergelijkingsoperator in de WHERE-clausule op een geïndexeerde kolom. De tweede query maakt gebruik van de OPERATOR LIKE in de WHERE-component. Dit dwingt SQL Server om een geclusterde indexscan te gebruiken om de gegevens te vinden die voldoen aan de WHERE-clausule-conditie. De waarden in de attributen EstimateRows en EstimatedTotalSubtreeCost zijn kleiner voor de eerste geïndexeerde query, wat aangeeft dat deze veel sneller werd verwerkt en minder middelen gebruikte dan de niet-geïndexeerde query.

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  

Zie ook

SET SHOWPLAN_XML (Transact-SQL)
sqlcmd-hulpprogramma