SET SHOWPLAN_XML (Transact-SQL)SET SHOWPLAN_XML (Transact-SQL)

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)síAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Hace que SQL ServerSQL Server no ejecute instrucciones Transact-SQLTransact-SQL.Causes SQL ServerSQL Server not to execute Transact-SQLTransact-SQL statements. En su lugar, SQL ServerSQL Server devuelve información detallada de cómo se van a ejecutar las instrucciones con el formato de un documento XML bien definido.Instead, SQL ServerSQL Server returns detailed information about how the statements are going to be executed in the form of a well-defined XML document

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax


SET SHOWPLAN_XML { ON | OFF }  

ComentariosRemarks

La opción SET SHOWPLAN_XML se establece en tiempo de ejecución, no en tiempo de análisis.The setting of SET SHOWPLAN_XML is set at execute or run time and not at parse time.

Cuando SET SHOWPLAN_XML es ON, SQL ServerSQL Server devuelve información del plan de ejecución para cada instrucción sin ejecutarla y Transact-SQLTransact-SQL no se ejecutan las instrucciones.When SET SHOWPLAN_XML is ON, SQL ServerSQL Server returns execution plan information for each statement without executing it, and Transact-SQLTransact-SQL statements are not executed. Cuando esta opción está establecida en ON, se devuelve información acerca del plan de ejecución de todas las instrucciones Transact-SQLTransact-SQL siguientes hasta que se vuelve a establecer en OFF.After this option is set ON, execution plan information about all subsequent Transact-SQLTransact-SQL statements is returned until the option is set OFF. Por ejemplo, si se ejecuta una instrucción CREATE TABLE cuando SET SHOWPLAN_XML es ON y después se ejecuta una instrucción SELECT en la que se especifica la tabla creada, SQL ServerSQL Server devuelve un mensaje de error, ya que la tabla no existe.For example, if a CREATE TABLE statement is executed while SET SHOWPLAN_XML is ON, SQL ServerSQL Server returns an error message from a subsequent SELECT statement involving that same table; the specified table does not exist. Por ello, las referencias posteriores que se hagan a la tabla generarán un error.Therefore, subsequent references to this table fail. Cuando SET SHOWPLAN_XML está establecida en OFF, SQL ServerSQL Server ejecuta las instrucciones sin generar ningún informe.When SET SHOWPLAN_XML is OFF, SQL ServerSQL Server executes the statements without generating a report.

SET SHOWPLAN_XML está diseñada para devolver datos nvarchar (max) para aplicaciones como el sqlcmd utilidad, donde la salida XML se utiliza otras herramientas para mostrar y procesar la consulta información del plan.SET SHOWPLAN_XML is intended to return output as nvarchar(max) for applications such as the sqlcmd utility, where the XML output is subsequently used by other tools to display and process the query plan information.

Nota

La vista de administración dinámica sys.dm_exec_query_plan, devuelve la misma información que SET SHOWPLAN XML en el xml tipo de datos.The dynamic management view, sys.dm_exec_query_plan, returns the same information as SET SHOWPLAN XML in the xml data type. Esta información se devuelve desde el query_plan columna de sys.dm_exec_query_plan.This information is returned from the query_plan column of sys.dm_exec_query_plan. Para obtener más información, consulte sys.dm_exec_query_plan ( Transact-SQL ) .For more information, see sys.dm_exec_query_plan (Transact-SQL).

SET SHOWPLAN_XML no se puede especificar en un procedimiento almacenado.SET SHOWPLAN_XML cannot be specified inside a stored procedure. Debe ser la única instrucción en un lote.It must be the only statement in a batch.

SET SHOWPLAN_XML devuelve información como un conjunto de documentos XML.SET SHOWPLAN_XML returns information as a set of XML documents. Cada lote después de la instrucción SET SHOWPLAN_XML ON se refleja en la salida con un único documento.Each batch after the SET SHOWPLAN_XML ON statement is reflected in the output by a single document. Cada documento contiene el texto de las instrucciones del lote, seguido de los detalles de los pasos de ejecución.Each document contains the text of the statements in the batch, followed by the details of the execution steps. El documento muestra los costos estimados, el número de filas, los índices a los que se ha obtenido acceso y los tipos de operadores utilizados, el orden de combinación y más información acerca de los planes de ejecución.The document shows the estimated costs, numbers of rows, accessed indexes, and types of operators performed, join order, and more information about the execution plans.

El documento que contiene el esquema XML de la salida XML de SET SHOWPLAN_XML se copia durante la instalación en un directorio local del equipo en el que se instala Microsoft SQL ServerSQL Server.The document containing the XML schema for the XML output by SET SHOWPLAN_XML is copied during setup to a local directory on the computer on which Microsoft SQL ServerSQL Server is installed. Se encuentra en la unidad que contiene los archivos de instalación de SQL ServerSQL Server, en:It can be found on the drive containing the SQL ServerSQL Server installation files, at:

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

También puede encontrarse en el esquema del plan de presentación este sitio Web.The Showplan Schema can also be found at this Web site.

Nota

Si incluir Plan de ejecución real está seleccionado en SQL Server Management StudioSQL Server Management Studio, esta opción SET no produce resultado del plan de presentación XML.If Include Actual Execution Plan is selected in SQL Server Management StudioSQL Server Management Studio, this SET option does not produce XML Showplan output. Desactive el incluir Plan de ejecución real botón antes de utilizarla opción SET..Clear the Include Actual Execution Plan button before using this SET option.

PermissionsPermissions

Para utilizar SET SHOWPLAN_XML, debe disponer de permisos suficientes para ejecutar las instrucciones en las que se ejecuta SET SHOWPLAN_XML, y debe tener el permiso SHOWPLAN para todas las bases de datos que contengan objetos a los que se hace referencia.In order to use SET SHOWPLAN_XML, you must have sufficient permissions to execute the statements on which SET SHOWPLAN_XML is executed, and you must have SHOWPLAN permission for all databases containing referenced objects.

Para SELECT, INSERT, UPDATE, DELETE, EXEC stored_procedurey EXEC user_defined_function instrucciones para generar un plan de presentación que el usuario debe:For SELECT, INSERT, UPDATE, DELETE, EXEC stored_procedure, and EXEC user_defined_function statements, to produce a Showplan the user must:

  • Tener los permisos correspondientes para ejecutar las instrucciones Transact-SQLTransact-SQL.Have the appropriate permissions to execute the Transact-SQLTransact-SQL statements.

  • Tener el permiso SHOWPLAN en todas las bases de datos que contengan objetos a los que hacen referencia las instrucciones Transact-SQLTransact-SQL, como tablas, vistas, etc.Have SHOWPLAN permission on all databases containing objects referenced by the Transact-SQLTransact-SQL statements, such as tables, views, and so on.

    Para todas las demás instrucciones, como DDL, USE database_name, conjunto, DECLARE, SQL dinámica y así sucesivamente, solo los permisos adecuados para ejecutar el Transact-SQLTransact-SQL son necesarias las instrucciones.For all other statements, such as DDL, USE database_name, SET, DECLARE, dynamic SQL, and so on, only the appropriate permissions to execute the Transact-SQLTransact-SQL statements are needed.

EjemplosExamples

Las dos instrucciones siguientes utilizan la opción SET SHOWPLAN_XML para mostrar la forma en que SQL ServerSQL Server analiza y optimiza el uso de índices en las consultas.The two statements that follow use the SET SHOWPLAN_XML settings to show the way SQL ServerSQL Server analyzes and optimizes the use of indexes in queries.

La primera consulta utiliza el operador de comparación es igual a (=) en la cláusula WHERE de una columna indizada.The first query uses the Equals comparison operator (=) in the WHERE clause on an indexed column. La segunda consulta utiliza el operador LIKE en la cláusula WHERE.The second query uses the LIKE operator in the WHERE clause. De este modo, SQL ServerSQL Server debe utilizar un recorrido de índice clúster para encontrar los datos que cumplen la condición de la cláusula WHERE.This forces SQL ServerSQL Server to use a clustered index scan and find the data meeting the WHERE clause condition. Los valores de la EstimateRows y EstimatedTotalSubtreeCost atributos son inferiores en la primera consulta indizada, lo que indica que se procesa mucho más rápidamente y consume menos recursos que el consultas no indizadas.The values in the EstimateRows and the EstimatedTotalSubtreeCost attributes are smaller for the first indexed query, indicating that it is processed much faster and uses fewer resources than the nonindexed query.

USE AdventureWorks2012;  
GO  
SET SHOWPLAN_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 SHOWPLAN_XML OFF;  

Vea tambiénSee Also

Instrucciones SET (Transact-SQL)SET Statements (Transact-SQL)