SET STATISTICS XML (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance

Hace que Microsoft SQL Server ejecute instrucciones Transact-SQL y genere información detallada sobre cómo se ejecutaron las instrucciones en un documento XML definido correctamente.

Convenciones de sintaxis de Transact-SQL

Sintaxis

  
SET STATISTICS XML { ON | OFF }  

Comentarios

El valor de SET STATISTICS XML se establece en tiempo de ejecución, no en tiempo de análisis.

Si SET STATISTICS XML es ON, SQL Server devuelve información sobre la ejecución de cada instrucción después de ejecutarla. Cuando esta opción está establecida en ON, se devuelve información sobre todas las instrucciones Transact-SQL siguientes hasta que se vuelve a establecer en OFF. Tenga en cuenta que SET STATISTICS XML no tiene que ser la única instrucción de un lote.

SET STATISTICS XML devuelve los resultados como nvarchar(max) para las aplicaciones que disponen de herramientas que usan la salida XML para mostrar y procesar la información del plan de consulta, como la utilidad sqlcmd.

SET STATISTICS XML devuelve la información como un conjunto de documentos XML. Cada instrucción posterior a la instrucción SET STATISTICS XML ON se refleja en la salida con un solo documento. Cada documento contiene el texto de la instrucción, seguido de los detalles de los pasos de ejecución. La salida muestra información en tiempo de ejecución, como los costos, los índices a los que se ha tenido acceso, los tipos de operaciones realizadas, el orden de combinación, el número de veces que se realiza una operación física, el número de filas generadas por cada operador físico, etc.

El documento que contiene el esquema XML de la salida XML de SET STATISTICS XML se copia durante la instalación en un directorio local del equipo en el que se instala Microsoft SQL Server. Se encuentra en la unidad que contiene los archivos de instalación de SQL Server, en:

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

El esquema del plan de presentación se puede encontrar también en este sitio web.

SET STATISTICS PROFILE y SET STATISTICS XML son equivalentes. El primero genera resultados en formato de texto y el último en formato XML. En futuras versiones de SQL Server, la información del plan de ejecución de consultas se mostrará únicamente mediante la instrucción SET STATISTICS XML, no SET STATISTICS PROFILE.

Nota

Si se selecciona Incluir plan de ejecución real en SQL Server Management Studio, esta opción SET no general la salida del plan de presentación XML. Desactive la opción Incluir plan de ejecución real antes de usar la opción SET.

Permisos

Para utilizar SET STATISTICS XML y ver el resultado, los usuarios deben tener los permisos siguientes:

  • Permisos correspondientes para ejecutar las instrucciones Transact-SQL.

  • El permiso SHOWPLAN para todas las bases de datos que contienen objetos a los que hacen referencia las instrucciones Transact-SQL.

Para las instrucciones Transact-SQL que no generan conjuntos de resultados de STATISTICS XML, solo se necesitan los permisos adecuados para ejecutar las instrucciones Transact-SQL. Para las instrucciones Transact-SQL que generan conjuntos de resultados de STATISTICS XML, el permiso de ejecución de la instrucción Transact-SQL y el permiso SHOWPLAN deben ser correctos, o la ejecución de la instrucción Transact-SQL se anulará y no se generará información relativa al plan de presentación.

Ejemplos

Las dos instrucciones siguientes utilizan la opción SET STATISTICS XML para mostrar la forma en que SQL Server analiza y optimiza el uso de índices en las consultas. La primera consulta utiliza el operador de comparación Es igual a (=) en la cláusula WHERE de una columna indizada. La segunda consulta utiliza el operador LIKE en la cláusula WHERE. De este modo, SQL Server debe utilizar un recorrido de índice no clúster para encontrar los datos que satisfacen la condición de la cláusula WHERE. Los valores de los atributos EstimateRows y EstimatedTotalSubtreeCost son inferiores en la primera consulta indizada, lo que indica que se procesa mucho más rápidamente y que usa menos recursos que la no indizada.

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  

Consulte también

SET SHOWPLAN_XML (Transact-SQL)
Utilidad sqlcmd