Planes de presentación XML

En Microsoft SQL Server, se pueden generar resultados del plan de presentación en formato XML con varios métodos. Los resultados del plan de presentación en formato XML se pueden mover de un equipo a otro y, por consiguiente, presentar en cualquier equipo, incluso en equipos donde SQL Server no está instalado. También se pueden procesar mediante programación usando tecnologías XML, como XPath, XQuery, XSLT, SAX, DOM, etc. SQL Server admite el procesamiento de planes de presentación XML y contiene un motor de evaluación de consultas integrado para XPath y XQuery.

Puede generar resultados del plan de presentación XML con los siguientes métodos:

  • Si selecciona Mostrar plan de ejecución estimado o Incluir plan de ejecución real en la barra de herramientas del editor de consultas de SQL Server Management Studio.

  • Si utiliza las opciones de la instrucción SET del plan de presentación de Transact-SQL SHOWPLAN_XML y STATISTICS XML.

  • Si selecciona las clases de evento del SQL Server ProfilerShowplan XML, Showplan XML for Query Compile y Showplan XML Statistics Profile para realizar el seguimiento.

  • Si utiliza la función de administración dinámica sys.dm_exec_query_plan.

Los planes de presentación XML se devuelven en el tipo de datos nvarchar(max) para todos estos métodos, excepto cuando utiliza sys.dm_exec_query_plan. Los planes de presentación XML se devuelven en el tipo de datos xml cuando utiliza esta vista de administración dinámica.

El esquema XML para el plan de presentación está disponible con los archivos de instalación de SQL Server en la ubicación siguiente:

C:\Archivos de programa\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

Nota

Si el optimizador de consultas termina prematuramente la optimización de consultas, se devuelve el atributo StatementOptmEarlyAbortReason para el elemento StmtSimple en la salida del plan de presentación XML. Los posibles valores que se pueden mostrar para este atributo son TimeOut, GoodEnoughPlanFound y MemoryLimitExceeded. Si se devuelve TimeOut o GoodEnoughPlanFound para este atributo, no es necesaria ninguna acción. El plan de presentación devuelto contiene los resultados correctos.

Si se devuelve MemoryLimitExceeded para el atributo StatementOptmEarlyAbortReason, el plan de presentación XML devuelto también será correcto, pero es posible que no sea óptimo. Pruebe uno de los métodos siguientes para aumentar la memoria disponible: 1) Reduzca la carga del servidor. 2) Aumente la memoria disponible para SQL Server. Para obtener más información, vea Administrar la memoria para bases de datos de gran tamaño. 3) Compruebe la opción max server memory establecida con sp_configure y aumente el valor si es demasiado bajo. Para obtener más información, vea Opciones de memoria del servidor.

Acerca del esquema XML del plan de presentación

La designación de la versión del esquema XML del plan de presentación consta de dos partes, m.n, donde m es el número de la versión principal y n es el número de la versión secundaria. Por ejemplo, "Versión 2.5". Este número de versión aparece en el elemento raíz del documento del esquema XML del plan de presentación. Por ejemplo: version="0.5". version="0.5"

Compatibilidad con versiones anteriores de los esquemas XML del plan de presentación

Si el número de versión principal aumenta, es posible que los resultados nuevos del plan de presentación XML no se validen con el esquema anterior. No obstante, si aumenta el número de versión secundaria, no hay consecuencias. Por ejemplo, si ha generado resultados del plan de presentación XML con la versión del esquema 0.5, estos resultados se validan con la versión 0.6 del esquema XML del plan de presentación.

Codificar planes de presentación XML

SQL Server envía los resultados del plan de presentación XML al cliente en formato Unicode usando dos bytes por cada carácter enviado. Las reglas de codificación son las siguientes:

  • 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 '?'

  • Los caracteres de tabulación, línea nueva y avance de línea se codifican de la forma siguiente:

    • \t se codifica como "&#x9;"

    • \n se codifica como "&#xa;"

    • \r se codifica como "&#xd;"

Guardar resultados del plan de presentación XML en un archivo

Después de generar los resultados del plan de presentación con las instrucciones Transact-SQL SET SHOWPLAN_XML o STATISTICS XML, puede guardar los resultados en un archivo con la extensión .sqlplan. Por ejemplo, MiPlanDePresentacionXML.sqlplan. Estos archivos .sqlplan se pueden abrir y ver en SQL Server Management Studio. Para obtener más información, vea Cómo guardar un plan de ejecución en formato XML.