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

Seleccione idioma Seleccione idioma
Id. de artículo: 2801413 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Introducción

A partir de Microsoft SQL Server 2000 Service Pack 3 (SP3), el SQL Server equipo del procesador de consultas adoptó una política que cualquier revisión que podría potencialmente afectar a la ejecución de una consulta debe controlarse mediante una marca de seguimiento. Excepción de correcciones de errores que pueden causar resultados incorrectos o dañados, estas revisiones están desactivadas de forma predeterminada y una marca de seguimiento es necesario para habilitar la corrección. Esta directiva ayuda a evitar cambios inesperados en los planes de ejecución de cargas de trabajo existentes que pueden producirse 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 una marca de seguimiento que controla una revisión correspondiente. Sin embargo, otras consultas pueden experimentar un plan de ejecución óptimo cuando se aplica la misma marca 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 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 una marca de seguimiento 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, es aconsejable habilitar una marca de seguimiento correspondiente para una determinada consulta. Para ello se puede habilitar el indicador de traza en un derecho de lote (utilizando el comando DBCC TRACEON) antes de la consulta de destino y, a continuación, deshabilitar el derecho de marca (utilizando el comando DBCC TRACEOFF) de seguimiento después de la consulta. Sin embargo, no siempre es posible controlar el texto del lote de Transact-SQL para las aplicaciones existentes. Puede experimentar un rendimiento muy bajo en una carga de trabajo y desea aplicar un cambio que afectan el 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 que se está ejecutando en cualquier sesión y aplicar automáticamente una marca de seguimiento que afectan el plan cuando se compila 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 que está controlado por una marca de seguimiento. La sugerencia QUERYTRACEON se especifica como parte de la cláusula de opción 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 afectan a los planes que está habilitado durante la compilación de la consulta. Se admiten los siguientes números de indicador de seguimiento:
Contraer esta tablaAmpliar esta tabla
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.
4136980653Actualización acumulativa 9 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;
Actualización acumulativa 5 para SQL Server 2008 R2 Service Pack 1;
1 de 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.


Los siguiente plan que afectan a los indicadores de traza están disponibles en Microsoft SQL Server 2014:
Contraer esta tablaAmpliar esta tabla
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 para que utilice 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 para SQL Server 2012. Indicador de traza 2312 obliga al optimizador de consultas utilizar el Estimador de cardinalidad versión 120 (la versión de SQL Server 2014) al crear el plan de consulta.

Comentarios

La opción QUERYTRACEON no se admite para los indicadores de traza que no sean 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, la opción se omitirá silenciosamente.

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.

Puede utilizar la opción QUERYTRACEON en Guías de planificación.

Ejemplos

  • Puede habilitar todas las revisiones que afectan el plan controladas por marca de seguimiento 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)

Propiedades

Id. de artículo: 2801413 - Última revisión: viernes, 25 de abril de 2014 - Versión: 2.0
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtes
Traducción automática
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

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com