Ativar afetar o plano do SQL Server query optimizer comportamento que pode ser controlada por sinalizadores de rastreamento diferentes em um nível de consulta específica

ID do artigo: 2801413 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Introdução

A partir do Microsoft SQL Server 2000 Service Pack 3 (SP3), o SQL Server, a equipe do processador consulta adotado uma política que planejar qualquer hotfix que poderia afetar a execução de uma consulta deve ser controlado por um sinalizador de rastreamento. Para correções de bugs que pode causar resultados incorretos ou corrupção, esses hotfixes estão desativados por padrão, e um sinalizador de rastreamento é necessária para ativar a correção. Esta diretiva ajuda a evitar alterações inesperadas para os planos de execução de cargas de trabalho existentes que podem ocorrer quando um hotfix ou uma atualização de segurança está instalada.

Geralmente os sinalizadores de rastreamento são ativados na inicialização ou em uma sessão de usuário. No entanto, isso pode ter um efeito inesperado em algumas consultas em um aplicativo de banco de dados existente. Por exemplo, considere um aplicativo ou a carga de trabalho que inclui várias consultas, e algumas dessas consultas usam um plano de execução de consulta ineficiente aperfeiçoado, permitindo que um sinalizador de rastreamento que controla um hotfix correspondente. No entanto, outras consultas podem enfrentar um plano de execução menos ideal quando o mesmo sinalizador de rastreamento é aplicado. Isso ocorre porque a opção de plano de execução afeta todas as consultas que são compiladas na instância ou a sessão quando o correspondente sinalizador de rastreamento está habilitada. Dependendo da consulta e os dados, alterar os modelos que são usados pelo otimizador de consulta pode tanto melhorar e diminuir o tempo de compilação e a eficiência de plano de execução para consultas específicas.

Se um sinalizador de rastreamento afeta qualquer plano de execução de consulta de forma indesejada, mas melhora a outro plano de execução de consulta, você poderá habilitar um sinalizador de rastreamento correspondente para uma determinada consulta. Você pode fazer isso, ativar o sinalizador de rastreamento em um direito de lote (usando o comando DBCC TRACEON) antes da consulta de destino e, em seguida, desativando direita rastreamento sinalizador (usando o comando DBCC TRACEOFF) após a consulta. No entanto, isso talvez não sempre seja possível controlar o texto de lote do Transact-SQL para os aplicativos existentes. Você pode enfrentar um desempenho ruim de consulta em uma carga de trabalho existente e deseja aplicar uma alteração de afetar o plano disponível para uma consulta sem alterar o texto de lote em si. Você pode fazer isso usando uma opção de nível de consulta para habilitar um sinalizador de rastreamento para uma determinada consulta.

Começando com o Microsoft SQL Server 2005 Service Pack 2 (SP2) e Microsoft SQL Server 2008, a opção de nível de consulta "QUERYTRACEON" está disponível. Esta opção permite que você para habilitar um sinalizador de rastreamento que afetam o plano somente durante a compilação de consulta simples. Como outras opções de nível de consulta, usá-lo com guias de plano para coincidir com o texto de uma consulta que está sendo executado a partir de qualquer sessão e aplicar automaticamente um sinalizador de rastreamento que afetam o plano quando essa consulta está sendo compilada.

Mais Informações

A dica QUERYTRACEON está disponível como uma dica de consulta que permite que uma alteração afetar o plano em que o otimizador de consulta é controlada por um sinalizador de rastreamento. A dica QUERYTRACEON é especificada como parte da cláusula opção semelhante a outros Dicas de consulta.

Sintaxe

<querytraceon_hint> ::=
       { QUERYTRACEON trace_flag_number }

Argumentos

QUERYTRACEON trace_flag_number

Especifica um número de sinalizador de rastreamento que afetam o plano que é ativado durante a compilação da consulta. Há suporte para os seguintes números de sinalizador de rastreamento:
Recolher esta tabelaExpandir esta tabela
Sinalizador de rastreamento Artigo da Base de dados de Conhecimento da MicrosoftDisponível em
4199974006Atualização cumulativa 6 para SQL Server 2005 Service Pack 3;
Atualização cumulativa 7 para SQL Server 2008;
Atualização cumulativa 7 para SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 e versões posteriores.
Todos os sinalizadores de rastreamento coberto por 4199974006Atualização cumulativa 6 para SQL Server 2005 Service Pack 3;
Atualização cumulativa 7 para SQL Server 2008;
Atualizaçã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.
4136980653Atualização cumulativa 9 do SQL Server 2005 Service Pack 3;
Atualização cumulativa 7 para SQL Server 2008 Service Pack 1;
2 De atualização cumulativa para SQL Server 2008 R2 e versões posteriores.
413726582148 De atualização cumulativa para o SQL Server 2008 Service Pack 2;
Atualização cumulativa 7 para SQL Server 2008 Service Pack 3;
Atualização cumulativa 5 para SQL Server 2008 R2 Service Pack 1;
Atualização cumulativa 1 para SQL Server 2012 e versões posteriores.
4138266721113 De atualização cumulativa para o SQL Server 2008 R2;
Atualização cumulativa 7 para SQL Server 2008 R2 Service Pack 1;
Atualização cumulativa 1 para SQL Server 2008 R2 Service Pack 2;
2 De atualização cumulativa para SQL Server 2012 e versões posteriores..

Comentários

A opção QUERYTRACEON não há suporte para sinalizadores de rastreamento que não sejam os sinalizadores de rastreamento que estão listados na tabela. No entanto, essa opção não retornará nenhum erro ou aviso se for usado um número de sinalizador de rastreamento não suportado. Se o sinalizador de rastreamento especificado não é aquele que afeta um plano de execução de consulta, a opção será silenciosamente ignorada.

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

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

Exemplos

  • Você pode habilitar todos os hotfixes que afetam o plano controlados pelo sinalizador de rastreamento 4199 para uma consulta específica. Por exemplo, você pode usar a seguinte consulta:
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • Você pode habilitar todos os hotfixes que afetam o plano controlados por sinalizadores de rastreamento 4199 e 4137 para uma consulta específica. Por exemplo, você pode usar a seguinte consulta:
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

Propriedades

ID do artigo: 2801413 - Última revisão: sexta-feira, 5 de abril de 2013 - Revisão: 2.0
A informação contida neste artigo aplica-se 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
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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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