KB974006-o modelo de serviço do otimizador de rastreamento do SQL Server Query 4199

INTRODUÇÃO

As versões do Microsoft SQL Server posteriores ao SQL Server 2000 Service Pack 3 (SP3) forneceram à maioria dos hotfixes para o otimizador de consultas em um estado desativado por padrão para impedir que os clientes de produção existentes vejam as alterações de plano esperadas que podem causar regressões de desempenho. A princípio, cada hotfix foi entregue sob um sinalizador de rastreamento separado. Mais tarde, essa prática foi alterada para que a maioria dos sinalizadores fosse combinada em um único sinalizador de rastreamento (4199). Essa nova prática foi iniciada em várias versões, começando com as seguintes atualizações:

  • Atualização cumulativa 6 do SQL Server 2005 Service Pack 3 (SP3) 6

  • Pacote de atualização cumulativa 7 do SQL Server 2008 Service Pack 1 (SP1)

  • SQL Server 2008 R2 (RTM)

O sinalizador de rastreamento 4199 foi usado para coletar hotfixes destinados a se tornarem ativados por padrão em uma versão futura, enquanto outros sinalizadores de rastreamento foram usados para situações em que uma correção não se tornou destinada a se tornar padrão no formato atual. A partir do SQL Server 2016 RTM, a configuração do COMPATIBILITY_LEVEL do banco de dados será usada habilitar hotfixes relacionados ao sinalizador de rastreamento 4199 por padrão. Este artigo descreve a mecânica e a política de como os hotfixes que afetam o plano serão entregues para o SQL Server 2016 e versões posteriores.

Informações adicionais

No SQL Server 2016, o sinalizador de rastreamento 4199 hotfixes feitos para versões anteriores do SQL Server será habilitado em banco de dados COMPATIBILITY_LEVEL 130 sem sinalizador de rastreamento 4199 habilitado. O sinalizador de rastreamento 4199 será usado para liberar quaisquer hotfixes futuros do SQL Server 2016 para bancos de dados usando o nível de compatibilidade 130. Como o sinalizador de rastreamento 4199 é recomendado somente para os clientes que estão vendo problemas específicos de desempenho, os clientes são aconselhados a remover o sinalizador de rastreamento 4199 após a migração dos bancos de dados para o nível de compatibilidade mais recente porque o sinalizador de rastreamento 4199 será reutilizado para correções futuras que podem não se aplicar ao seu aplicativo e podem causar alterações inesperadas de desempenho em um sistema Isso significa que os hotfixes do indicador de rastreamento diferentes 4199 estão habilitados para cada nível de compatibilidade com suporte em uma determinada versão do produto. Onível de compatibilidade mais recente já permite todas as correções anteriores no sinalizador de rastreamento 4199. Isso significa que a atualização de um banco de dados para o nível de compatibilidade mais recente e a remoção do sinalizador de rastreamento 4199 ainda permite todas as correções que uma carga de trabalho aproveitava antes da atualização do banco de dados, simplesmente não novas Se, posteriormente, os clientes experimentarem problemas de desempenho da consulta, experimente habilitar a opção de QUERY_OPTIMIZER_HOTFIXES de banco de dados ou a dica de consulta ENABLE_QUERY_OPTIMIZER_HOTFIXES em um ambiente de teste para determinar se os problemas foram resolvidos. Consulte a documentação sobre QUERY_OPTIMIZER_HOTFIXES

Observação Por padrão, os bancos de dados criados no SQL Server 2016 usam o nível de compatibilidade 130 e têm a nova lógica do otimizador já habilitada. A principal vantagem desse modelo é reduzir o risco dos sistemas de produção durante o processo de atualização. Essa abordagem separa a instalação de uma nova versão principal do SQL Server da habilitação automática de todas as novas alterações do processador de consulta. Como as atualizações da versão principal alteram o formato do arquivo e não são reversíveis, é uma boa ideia usar a configuração COMPATIBILITY_LEVEL, pois isso permite que um cliente faça o downgrade rápido se um problema de desempenho de plano inesperado for encontrado durante uma atualização. Se um cliente encontrar uma alteração de plano inesperada que bloqueie uma atualização de aplicativo, o cliente pode aliviar a situação aplicando uma dica de plano apropriada usando o repositório de consultas para forçar o plano anterior ou pode facilitar a situação ao entrar em contato com o suporte ao cliente da Microsoft para obter ajuda com o problema para fornecer uma solução alternativa ou hotfix. Quando todos os problemas são diminuídos, a atualização pode continuar. Os clientes devem integrar esse recurso ao planejamento de atualização do SQL Server 2016. A tabela a seguir explica o modelo de como o sinalizador de rastreamento 4199 funcionará a partir do SQL Server 2016.

Configuração

Nível de compatibilidade SQL

Sinalizador de rastreamento 4199

Hotfixes do otimizador antes do SQL Server 2016 RTM

Hotfixes do otimizador após o SQL Server 2016 RTM

um.

120

Desativado

Ativo

Ativo

2.

120

Ativado

Habilitada

Ativo

3.

130

Desativado

Habilitado por nível de compatibilidade

Ativo

4.

130

Ativado

Habilitado por nível de compatibilidade

Habilitado por nível de compatibilidade

Observação A configuração de no. 3 é recomendada para os clientes que estão atualizando para o SQL Server 2016. Para as versões principais após o SQL Server 2016, a Microsoft planeja continuar a usar esse modelo de serviço para hotfixes do Optimizer. Por padrão, ou cada lançamento, qualquer hotfix de rastreamento 4199 da versão anterior será habilitado no próximo nível de compatibilidade. Isso significa que o estado recomendado para os clientes após a migração para o nível de compatibilidade mais recente será ter o sinalizador de rastreamento 4199 desabilitado. Hotfixes posteriores usam o sinalizador de rastreamento 4199 para habilitar correções para os clientes que têm que habilitar esses hotfixes específicos em um aplicativo. Os clientes são aconselhados a desabilitar o sinalizador de rastreamento 4199 depois que um aplicativo for atualizado para o nível de compatibilidade mais recente para evitar alterações inesperadas do otimizador futuro ativadas em um aplicativo inesperadamente. Que a atualização para o nível de compatibilidade mais recente e a remoção do sinalizador de rastreamento 4199 ainda permite todas as correções que uma carga de trabalho aproveitava antes da atualização, simplesmente não há novas correções.

Observação Embora muitos hotfixes do otimizador estejam habilitados no sinalizador de rastreamento 4199, alguns usam outros sinalizadores de rastreamento. Sinalizador de rastreamento 4199 sinalizadores de rastreamento cobertos historicamente que são amplamente aplicáveis e provavelmente serão habilitados por padrão em uma versão futura. Sinalizadores de rastreamento alternativos são usados em hotfixes em que as condições são muito específicas para apenas alguns clientes, em que a correção pode causar regressões de desempenho em outros tipos de aplicativos, ou onde a funcionalidade interna pode ver alterações antes de estar pronta para ser habilitada para todos. A Microsoft continuará a usar outros sinalizadores de rastreamento conforme necessário para atender ao produto. Observação Este artigo se concentra no modelo para liberar o sinalizador de rastreamento 4199 hotfixes no nível de compatibilidade mais recente do produto mais recente. (No momento da publicação, este é o SQL Server 2016.) Os hotfixes do Optimizer podem ser lançados em versões anteriores do SQL Server no mercado ou em níveis de compatibilidade mais baixos (120 ou anteriores) do SQL Server 2016. A Microsoft avaliará cada caso e determinará se o sinalizador de rastreamento 4199 ou um sinalizador de rastreamento diferente será usado ou um sinalizador de rastreamento diferente. Como as alterações de não-hotfix também são habilitadas quando uma mudança é feita a um nível de compatibilidade posterior, não há uma promessa específica de que nenhuma alteração de plano ocorrerá durante uma atualização (com ou sem o sinalizador de rastreamento 4199). Os clientes sempre devem testar as alterações no nível de compatibilidade cuidadosamente para aplicativos de produção e devem usar tecnologias de mitigação, como o repositório de consultas, se houver um problema de desempenho relacionado ao plano-opção. Para referência, a tabela a seguir lista os sinalizadores de rastreamento que foram usados para hotfixes do processador de consultas antes da introdução do sinalizador de rastreamento 4199.

Artigo da Base de Dados de Conhecimento Microsoft

Sinalizador de rastreamento

318530

4101

940128

4102

919905

4103

920346

4104

920347

4105

922438

4106

923849

4107

926024

4108

926773

4109

933724

4110

934065

4111

946793

4115

950880

4116

948445

4117

942659

4119

953948

4120

942444

4121

946020

4122

948248

4124

949854

4125

959013

4126

953569

4127

955694 957872

4128

958547

4129

956686

4131

958006

4133

960770

4135*

SQL Server 2005

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 6 para SQL Server 2005 Service Pack 3. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

974648 Pacote de atualizações cumulativas 6 para SQL Server 2005 Service Pack 3Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2005 Fix. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

960598 As compilações do SQL Server 2005 lançadas após o lançamento do SQL Server 2005 Service Pack 3Hotfixes do Microsoft SQL Server 2005 são criados para Service Packs específicos do SQL Server. Você deve aplicar um hotfix do SQL Server 2005 Service Pack 3 a uma instalação do SQL Server 2005 Service Pack 3. Por padrão, qualquer hotfix fornecido em um Service Pack do SQL Server está incluído no próximo Service Pack do SQL Server.

SQL Server 2008

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 7. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

973601 Pacote de atualizações cumulativas 7 para SQL Server 2008Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Fix. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

956909 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008

SQL Server 2008 SP1

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 7 para SQL Server 2008 Service Pack 1. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

979065 Pacote de atualizações cumulativas 7 para SQL Server 2008 Service Pack 1Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Fix. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

970365 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 1Hotfixes do Microsoft SQL Server 2008 são criados para Service Packs específicos do SQL Server. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 1 a uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix fornecido em um Service Pack do SQL Server está incluído no próximo Service Pack do SQL Server.

SQL Server 2008 R2

Na versão de lançamento do SQL Server 2008 R2, o sinalizador de rastreamento 4135 era inadvertidamente omitido da lista de sinalizadores de rastreamento que podem ser controlados por-T4199. No entanto, isso foi corrigido na atualização cumulativa 1 para SQL Server 2008 R2. Portanto, para esse Build e para SQL Server 2005 e SQL Server 2008 edições compatíveis,-T4199 será suficiente para habilitar esse e outros sinalizadores de rastreamento listados neste artigo.

SQL Server 2012 e versões posteriores

O sinalizador de rastreamento 4199 está incluído nas versões de lançamento do SQL Server 2012 e versões posteriores.

Como habilitar o sinalizador de rastreamento 4199

Você pode habilitar o sinalizador de rastreamento 4199 na inicialização ou em uma sessão de usuário. Esse sinalizador de rastreamento tem efeito em nível global ou em nível de sessão. Para habilitar o sinalizador de rastreamento 4199, use o comando DBCC tracen ou use – T 4199 como um parâmetro de inicialização. Se DBCC TRACEON\TRACEOFF for usado, isso não gerará novamente um novo plano em cache para procedimentos armazenados. Os planos podem estar em cache que foram criados sem o sinalizador de rastreamento. Para obter informações detalhadas sobre como habilitar ou desabilitar os sinalizadores de rastreamento e explicações de sinalizadores de rastreamento globais e em nível de sessão, consulte os tópicos a seguir nos manuais online do SQL Server:

Referências

Para obter mais informações sobre o esquema de nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

822499 Novo esquema de nomeação para pacotes de atualização de software do Microsoft SQL Server Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×