DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 2801413 - Última revisão: terça-feira, 7 de janeiro de 2014 - Revisão: 3.0

 

Introdução

Começando com o Microsoft SQL Server 2000 Service Pack 3 (SP3), o SQL Server a equipe do processador consulta adotou uma diretiva que planejar qualquer hotfix que poderia afetar a execução de uma consulta deve ser controlado por um sinalizador de rastreamento. Exceto 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ário para habilitar 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 consultas pode tanto melhorar e reduzir o tempo de compilação e a eficiência de plano de execução para consultas específicas.

Se o sinalizador de rastreamento afeta qualquer plano de execução de consulta de uma maneira indesejada, mas melhora a outro plano de execução de consulta, convém habilitar um sinalizador de rastreamento correspondente para apenas uma consulta específica. 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 o direito do sinalizador (usando o comando DBCC TRACEOFF) de rastreamento após a consulta. No entanto, isso pode não sempre seja possível controlar o texto em lotes do Transact-SQL para os aplicativos existentes. Você pode enfrentar um desempenho ruim de consulta em uma carga de trabalho e deseja aplicar uma alteração disponível que afetam o plano 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 somente uma consulta específica.

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, você pode usá-lo com guias de plano para coincidir com o texto da consulta sendo executada de qualquer sessão de e aplica 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 uma alteração afetar o plano no otimizador de consulta que é controlado por um sinalizador de rastreamento. A dica QUERYTRACEON é especificada como parte da cláusula opção semelhante a outros dicas de consulta (http://msdn.microsoft.com/en-us/library/ms181714.aspx) .

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 Conhecimento MicrosoftDisponível em
4199974006  (http://support.microsoft.com/kb/974006/ ) Atualizaçã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 4199974006  (http://support.microsoft.com/kb/974006/ ) Atualizaçã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.
23352413549  (http://support.microsoft.com/kb/2413549/ ) SQL Server 2005 e versões posteriores.
23402009160  (http://support.microsoft.com/kb/2009160/ ) SQL 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.  (http://support.microsoft.com/kb/929278/en-us/ )
4136980653  (http://support.microsoft.com/kb/980653/ ) Atualização cumulativa 9 para o 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.
41372658214  (http://support.microsoft.com/kb/2658214/ ) Atualização cumulativa 8 para SQL Server 2008 Service Pack 2;
Atualização cumulativa 7 para SQL Server 2008 Service Pack 3;
5 De atualização cumulativa para SQL Server 2008 R2 Service Pack 1;
Atualização cumulativa 1 para SQL Server 2012 e versões posteriores.
41382667211  (http://support.microsoft.com/kb/2667211/ ) 13 De atualização cumulativa para 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...


Os seguintes sinalizadores que afeta rastreamento plano estão disponíveis no Microsoft SQL Server 2014 Community Technology Preview 1 (CTP1) e o Microsoft SQL Server 2014 Community Technology Preview 2 (CTP2):

Recolher esta tabelaExpandir esta tabela
Sinalizador de rastreamentoDescrição
9481Use quando estiver executando o SQL Server 2014 com o nível de compatibilidade do banco de dados padrão 120. Sinalizador de rastreamento 9481 força o otimizador de consulta para usar a versão 70 (a versão do SQL Server 2012) o estimador de cardinalidade ao criar o plano de consulta.
2312Use quando estiver executando o SQL Server 2014 com nível de compatibilidade do banco de dados 110, que é o nível de compatibilidade do SQL Server 2012. Sinalizador de rastreamento 2312 força o otimizador de consulta para usar a versão 120 (a versão SQL Server 2014) o estimador de cardinalidade ao criar o plano de consulta.

Comentários

Não há suporte para a opção QUERYTRACEON para sinalizadores de rastreamento que não sejam os sinalizadores de rastreamento 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 sem suporte. Se o sinalizador de rastreamento especificado não é um 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 opção se QUERYTRACEON trace_flag_number é duplicado com números de sinalizador de rastreamento diferentes.

A opção QUERYTRACEON pode ser usada em Guias de plano (http://msdn.microsoft.com/en-us/library/ms190417.aspx) .

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)

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
  • 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áticaTradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 2801413  (http://support.microsoft.com/kb/2801413/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store