Activar que afectam o plano do SQL Server optimizer comportamento de consulta que pode ser controlado por sinalizadores de rastreio diferente a um nível de consulta específica

Traduções de Artigos Traduções de Artigos
Artigo: 2801413 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Introdução

A partir do Microsoft SQL Server 2000 Service Pack 3 (SP3), a equipa de processador de consulta adoptado uma política que planear qualquer correcção que poderia potencialmente afectar a execução de uma consulta do SQL Server deve ser controlado por um sinalizador de rastreio. Com excepção das correcções a erros que podem causar resultados incorrectos ou corrupção, estas correcções estão desactivadas por predefinição e um sinalizador de rastreio é necessário para activar a correcção. Esta política ajuda a evitar alterações inesperadas para os planos de execução remota de cargas de trabalho existentes que poderão ocorrer quando uma correcção ou uma actualização de segurança está instalada.

Normalmente, os sinalizadores de rastreio estão activadas no arranque ou numa sessão de utilizador. No entanto, isto poderá ter um efeito inesperado em algumas consultas numa aplicação de base de dados existente. Por exemplo, considere uma aplicação ou a carga de trabalho que inclui várias consultas e algumas destas consultas utilizam um plano de execução de consulta ineficaz melhorado activando um sinalizador de rastreio que controla uma correcção correspondente. No entanto, outras consultas poderão detectar um plano de execução de menos ideal quando é aplicado o mesmo sinalizador de rastreio. Isto acontece porque a escolha do plano de execução afecta todas as consultas que são compiladas na instância ou a sessão quando o correspondente sinalizador de rastreio está activada. Consoante a consulta e os dados, alterar os modelos que são utilizados pelo optimizador de consultas poderá melhorar tanto diminuir plano eficiência e compilação de tempo de execução para consultas específicas.

Se um sinalizador de rastreio afecta qualquer plano de execução de consulta de uma forma indesejada, mas melhora alguns outro plano de execução de consulta, pode pretender activar um sinalizador de rastreio correspondente para uma determinada consulta. Pode fazê-lo, activar o sinalizador de rastreamento de um direito de batch (utilizando o comando DBCC TRACEON) antes da consulta de destino e, em seguida, desactivando o direito de sinalizador (utilizando o comando DBCC TRACEOFF) de rastreio depois da consulta. No entanto, isto poderá não ser sempre possível controlar o texto de lotes de Transact-SQL para aplicações existentes. Poderá detectar um desempenho fraco de consulta numa carga de trabalho existente e pretende aplicar uma alteração que afecte o plano disponível a uma consulta sem alterar o próprio texto de batch. Pode fazê-lo utilizando uma opção de nível de consulta para activar um sinalizador de rastreio para uma determinada consulta.

"QUERYTRACEON" a partir do Microsoft SQL Server 2005 Service Pack 2 (SP2) e Microsoft SQL Server 2008, a opção ao nível de consulta está disponível. Esta opção permite-lhe para activar um sinalizador de rastreio que afectam o plano apenas durante a compilação de consulta simples. Como outras opções de nível de consulta, pode utilizá-lo em conjunto com guias de plano para corresponder ao texto de uma consulta que está a ser executado a partir de qualquer sessão e aplicar automaticamente um sinalizador de rastreio que afectam o plano quando esta consulta está a ser compilada.

Mais Informação

A sugestão QUERYTRACEON está disponível como uma sugestão de consulta que permite que uma alteração que afecte o plano o otimizador de consulta que é controlada por um sinalizador de rastreio. A sugestão QUERYTRACEON é especificada como parte da cláusula opção semelhante para outro sugestões de consulta.

Sintaxe

<querytraceon_hint> ::=
       { QUERYTRACEON trace_flag_number }

Argumentos

QUERYTRACEON trace_flag_number

Especifica um que afectam o plano rastreio sinalizador número que é activado durante a compilação da consulta. São suportados os seguintes números de sinalizador de rastreio:
Reduzir esta tabelaExpandir esta tabela
Sinalizador de rastreio Artigo da Base de dados de conhecimento da MicrosoftDisponível no
4199974006Actualização cumulativa 6 para SQL Server 2005 Service Pack 3. o;
Actualização cumulativa 7 para o SQL Server 2008;
Actualização cumulativa 7 para SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 e versões posteriores.
Todos os sinalizadores de rastreio abrangidos pelo 4199974006Actualização cumulativa 6 para SQL Server 2005 Service Pack 3. o;
Actualização cumulativa 7 para o SQL Server 2008;
Actualização cumulativa 7 para SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 e versões posteriores.
23352413549SQL Server 2005 e versões posteriores.
23402009160SQL Server 2005 e versões posteriores.
2389, 2390NenhumSQL Server 2005 e versões posteriores. Para um problema conhecido no SQL Server 2005 ambientes consulte 929278.
4136980653Actualização cumulativa 9 para SQL Server 2005 Service Pack 3. o;
Actualização cumulativa 7 para SQL Server 2008 Service Pack 1;
2 De actualização cumulativa para o SQL Server 2008 R2 e versões posteriores.
41372658214Actualização cumulativa 8 para SQL Server 2008 Service Pack 2;
Actualização cumulativa 7 para SQL Server 2008 Service Pack 3. o;
Actualização cumulativa 5 para SQL Server 2008 R2 Service Pack 1;
1 Actualização cumulativa para o SQL Server 2012 e versões posteriores.
41382667211Actualização cumulativa 13 para o SQL Server 2008 R2;
Actualização cumulativa 7 para SQL Server 2008 R2 Service Pack 1;
Actualização cumulativa 1 para SQL Server 2008 R2 Service Pack 2;
2 De actualização cumulativa de 2012 do SQL Server e versões posteriores...


Os sinalizadores seguintes para o plano que afectem rastreio estão disponíveis no Microsoft SQL Server 2014 Community Technology Preview 1 (CTP1) e Microsoft SQL Server 2014 Comunidade tecnologia pré-visualização 2 (CTP2):

Reduzir esta tabelaExpandir esta tabela
Sinalizador de rastreioDescrição
9481Utilização quando executar o SQL Server 2014, com o nível de compatibilidade de base de dados predefinido 120. Sinalizador de rastreio 9481 força o otimizador de consulta para utilizar a versão 70 (a versão do SQL Server 2012) do estimador cardinalidade ao criar o plano de consulta.
2312Utilize quando executar o SQL Server 2014 com nível de compatibilidade de base de dados 110, que é o nível de compatibilidade para o SQL Server 2012. Sinalizador de rastreamento 2312 força o otimizador de consulta para utilizar a versão 120 (a versão do SQL Server 2014) do estimador cardinalidade ao criar o plano de consulta.

Observações

A opção QUERYTRACEON não é suportada para sinalizadores de rastreio que não os sinalizadores de rastreio que são listados na tabela. No entanto, esta opção não devolverá qualquer erro ou aviso se for utilizado um número de sinalizador de rastreio não suportado. Se o sinalizador de rastreio especificado não é uma que afecta um plano de execução de consulta, a opção será ignorada silenciosamente.

Mais do que um sinalizador de rastreio pode ser especificado na cláusula opção se QUERYTRACEON trace_flag_number está duplicado com números de sinalizador de rastreio diferente.

A opção de QUERYTRACEON pode ser utilizada em Guias de plano.

Exemplos

  • Pode activar todas as correcções que afectam o plano controladas por sinalizador de rastreio 4199 para uma determinada consulta. Por exemplo, pode utilizar a seguinte consulta:
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • Pode activar todas as correcções que afectam o plano controladas por sinalizadores de rastreio 4199 e 4137 para uma determinada consulta. Por exemplo, pode utilizar a seguinte consulta:
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

Propriedades

Artigo: 2801413 - Última revisão: 7 de janeiro de 2014 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • 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 Enterprise Community Technology Preview 2
  • Microsoft SQL Server 2014 Standard Community Technology Preview 2
Palavras-chave: 
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2801413

Submeter comentários

 

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