sys.dm_exec_query_statistics_xml (Transact-SQL)

Se aplica a:yesSQL Server 2016 (13.x) y versiones posteriores YesAzure SQL Database YesAzure SQL Managed Instance

Devuelve el plan de ejecución de consultas para las solicitudes en curso. Use esta DMV para recuperar xml del plan de presentación con estadísticas transitorias.

Sintaxis

sys.dm_exec_query_statistics_xml(session_id)  

Argumentos

session_id
Es el identificador de sesión que ejecuta el lote que se va a buscar. session_id es smallint. session_id se pueden obtener de los siguientes objetos de administración dinámica:

Tabla devuelta

Nombre de columna Tipo de datos Descripción
session_id smallint Id. de la sesión. No acepta valores NULL.
request_id int Id. de la solicitud. No acepta valores NULL.
sql_handle varbinary(64) Es un token que identifica de forma única el lote o el procedimiento almacenado del que forma parte la consulta. Acepta valores NULL.
plan_handle varbinary(64) Es un token que identifica de forma exclusiva un plan de ejecución de consulta para un lote que se está ejecutando actualmente. Acepta valores NULL.
query_plan xml Contiene la representación del plan de presentación en tiempo de ejecución de la consulta que se especifica con plan_handle que contiene estadísticas parciales. El plan de presentación está en formato XML. Se genera un plan para cada lote que contiene, por ejemplo, instrucciones Transact-SQL "ad hoc", llamadas a procedimientos almacenados y llamadas a funciones definidas por el usuario. Acepta valores NULL.

Comentarios

Esta función del sistema está disponible a partir de SQL Server 2016 (13.x) SP1. Consulte kb 3190871

Esta función del sistema funciona en la infraestructura de generación de perfiles de estadísticas de ejecución de consultas estándar y ligeras . Para obtener más información, vea Infraestructura de generación de perfiles de consultas.

En las condiciones siguientes, no se devuelve ningún resultado del plan de presentación en la columna query_plan de la tabla devuelta para sys.dm_exec_query_statistics_xml:

  • Si el plan de consulta que corresponde al session_id especificado ya no se está ejecutando, la columna query_plan de la tabla devuelta es null. Por ejemplo, esta condición puede producirse si hay un retraso de tiempo entre el momento en que se capturó el identificador del plan y cuándo se usó con sys.dm_exec_query_statistics_xml.

Debido a una limitación en el número de niveles anidados permitidos en el tipo de datos xml , sys.dm_exec_query_statistics_xml no puede devolver planes de consulta que cumplan o superen 128 niveles de elementos anidados. En versiones anteriores de SQL Server, esta condición impedía que el plan de consulta devolva y genera el error 6335. En SQL Server 2005 (9.x) Service Pack 2 y versiones posteriores, la columna query_plan devuelve NULL.

Permisos

En SQL Server, requiere VIEW SERVER STATE permiso en el servidor.
En los niveles Premium para SQL Database, se requiere el permiso VIEW DATABASE STATE en la base de datos. En SQL Database niveles Estándar y Básico, requiere el administrador del servidor o una cuenta de administrador de Azure Active Directory.

Ejemplos

A. Examinar el plan de consulta activa y las estadísticas de ejecución de un lote en ejecución

En el ejemplo siguiente se consulta sys.dm_exec_requests para buscar la consulta interesante y copiarla session_id de la salida.

SELECT * FROM sys.dm_exec_requests;  
GO  

A continuación, para obtener el plan de consulta activa y las estadísticas de ejecución, use la función copiada session_id con la función del sistema sys.dm_exec_query_statistics_xml.

--Run this in a different session than the session in which your query is running.
SELECT * FROM sys.dm_exec_query_statistics_xml(< copied session_id >);  
GO  

O bien, combinado para todas las solicitudes en ejecución.

--Run this in a different session than the session in which your query is running.
SELECT * FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_query_statistics_xml(session_id);  
GO  

Consulte también

Marcas de seguimiento
Funciones y vistas de administración dinámica (Transact-SQL)
Vistas de administración dinámica relacionadas con la base de datos (Transact-SQL)