Habilitar afectan a planes SQL Server optimizer comportamiento de la consulta que se puede controlar diferentes indicadores de traza en un nivel de consulta específica

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 2801413
Introducción
A partir de Microsoft SQL Server 2000 Service Pack 3 (SP3), el SQL Server equipo del procesador de consultas había adoptado una directiva que planear cualquier hotfix que podría potencialmente afectar a la ejecución de una consulta debe controlarse mediante un indicador de traza. Excepción de correcciones de errores que pueden provocar resultados incorrectos o dañados, estas revisiones están desactivadas de forma predeterminada y una marca de seguimiento es necesaria para habilitar la corrección. Esta directiva ayuda a evitar cambios inesperados en los planes de ejecución de cargas de trabajo existentes que se pueden producir cuando se instala una revisión o una actualización de seguridad.

Normalmente los indicadores de traza se habilitan al inicio o en una sesión de usuario. Sin embargo, esto puede tener un efecto inesperado en algunas consultas en una aplicación de base de datos existente. Por ejemplo, considere una aplicación o la carga de trabajo que incluye varias consultas y algunas de estas consultas utilizan un plan de ejecución de consulta poco eficiente que mejora al habilitar un indicador de traza que controla una revisión correspondiente. Sin embargo, otras consultas pueden experimentar un plan menos óptimo de ejecución cuando se aplica el mismo marcador de seguimiento. Esto es porque la elección del plan de ejecución afecta a todas las consultas que se compilan en la instancia o la sesión cuando el correspondiente indicador de traza está habilitada. Dependiendo de la consulta y los datos, cambiar los modelos que son utilizados por el optimizador de consultas puede mejorar tanto reducir el tiempo de compilación y de la eficacia del plan de ejecución de consultas particulares.

Si un indicador de traza afecta a cualquier plan de ejecución de la consulta de un modo no deseado, pero mejora el otro plan de ejecución de consulta, desea habilitar una marca de seguimiento correspondiente para una determinada consulta. Para ello, puede habilitar el indicador de traza en un derecho de lote (mediante el comando de DBCC TRACEON) antes de la consulta de destino y, a continuación, deshabilitar el derecho de marca (mediante el comando de DBCC TRACEOFF) de seguimiento después de la consulta. No obstante, esto no siempre puede controlar el texto del lote Transact-SQL para las aplicaciones existentes. Puede experimentar un rendimiento deficiente de consulta en una carga de trabajo existente y desea aplicar un cambio que afectan al plan disponible para una consulta sin cambiar el texto del lote. Puede hacerlo mediante una opción de nivel de consulta para habilitar una marca de seguimiento para una determinada consulta.

A partir de Microsoft SQL Server 2005 Service Pack 2 (SP2) y Microsoft SQL Server 2008, la opción de nivel de consulta "QUERYTRACEON" está disponible. Esta opción permite habilitar una marca de seguimiento que afectan el plan solamente durante la compilación de consulta única. Como otras opciones de nivel de consulta, puede utilizar junto con las guías de plan para que coincida con el texto de una consulta se ejecuta en cualquier sesión y aplicar automáticamente una marca de seguimiento que afectan al plan cuando se está compilando esta consulta.
Más información
La sugerencia QUERYTRACEON está disponible como una sugerencia de consulta que permite un cambio que afectan el plan en el optimizador de consultas está controlado por una marca de seguimiento. Se especifica la sugerencia QUERYTRACEON como parte de la cláusula OPTION similar a otro sugerencias de consulta.

Sintaxis

<querytraceon_hint> ::=       { QUERYTRACEON trace_flag_number }

Argumentos

QUERYTRACEON trace_flag_number

Especifica un número de indicador de traza que afectan al plan que está habilitado durante la compilación de la consulta. Se admiten los siguientes números de indicador de traza:
Indicador de traza Artículo de Microsoft Knowledge BaseDisponible en
4199974006Actualización acumulativa 6 para SQL Server 2005 Service Pack 3;
Actualización acumulativa 7 para SQL Server 2008;
Actualización acumulativa 7 para SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 y versiones posteriores.
Todos los indicadores de traza cubiertos por 4199974006Actualización acumulativa 6 para SQL Server 2005 Service Pack 3;
Actualización acumulativa 7 para SQL Server 2008;
Actualización acumulativa 7 para SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 y versiones posteriores.
23352413549SQL Server 2005 y versiones posteriores.
23402009160SQL Server 2005 y versiones posteriores.
2389, 2390NingunoSQL Server 2005 y versiones posteriores. Para un problema conocido en SQL Server 2005, consulte entornos 929278.
41369806539 de actualización acumulativa para SQL Server 2005 Service Pack 3;
Actualización acumulativa 7 para SQL Server 2008 Service Pack 1;
Actualización acumulativa 2 para SQL Server 2008 R2 y versiones posteriores.
41372658214Actualización acumulativa 8 para SQL Server 2008 Service Pack 2;
Actualización acumulativa 7 para SQL Server 2008 Service Pack 3;
5 de actualización acumulativa para SQL Server 2008 R2 Service Pack 1;
1 actualización acumulativa para SQL Server 2012 y versiones posteriores.
41382667211Actualización acumulativa 13 para SQL Server 2008 R2;
Actualización acumulativa 7 para SQL Server 2008 R2 Service Pack 1;
Actualización acumulativa 1 de SQL Server 2008 R2 Service Pack 2;
Actualización acumulativa 2 para SQL Server 2012 y versiones posteriores..


El siguiente plan que afectan a los indicadores de traza están disponibles en Microsoft SQL Server 2014:
Indicador de trazaDescripción
9481Se utiliza cuando se ejecuta SQL Server 2014 con el nivel de compatibilidad de base de datos predeterminada 120. Indicador de traza 9481 obliga al optimizador de consultas utilizar la versión 70 (la versión de SQL Server 2012) del estimador de cardinalidad al crear el plan de consulta.
2312Se utiliza cuando se ejecuta SQL Server 2014 con el nivel de compatibilidad de base de datos 110, que es el nivel de compatibilidad de SQL Server 2012. El indicador de traza 2312 obliga al optimizador de consultas utilizar versión 120 (la versión de SQL Server 2014) del estimador cardinalidad al crear el plan de consulta.

Comentarios

La opción QUERYTRACEON no se admite para los indicadores de traza distintos de los indicadores de traza que se enumeran en la tabla. Sin embargo, esta opción no devolverá ningún error o advertencia si se utiliza un número de indicador de traza no compatible. Si el indicador de traza especificado no es uno que afecta a un plan de ejecución de la consulta, se omitirá silenciosamente la opción.

Se puede especificar más de una marca de seguimiento en la cláusula OPTION si QUERYTRACEON trace_flag_number se duplica con números del indicador de traza diferente.


Ejecutar una consulta con la opción QUERYTRACEON requiere la pertenencia a la función fijado de servidor sysadmin.


La opción QUERYTRACEON puede utilizarse en Guías de planificación.
Ejemplos
  • Puede habilitar todas las revisiones que afectan el plan controladas por el indicador de traza 4199 para una consulta determinada. Por ejemplo, puede utilizar la siguiente consulta:
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • Puede habilitar todas las revisiones que afectan el plan controladas por los indicadores de traza 4199 y 4137 para una consulta determinada. Por ejemplo, puede utilizar la siguiente consulta:
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 2801413 - Última revisión: 01/20/2016 11:01:00 - Revisión: 3.0

Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard

  • kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtes
Comentarios