Applies ToMicrosoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Standard X64 Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Workgroup Edition SQL Server 2008 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

INTRODUÇÃO

As versões do Microsoft SQL Server posteriores ao SQL Server 2000 Service Pack 3 (SP3) entregaram a maioria dos hotfixes ao otimizador de consultas num estado off-by-default, de forma a impedir que os clientes de produção existentes vejam as alterações previstas do plano que podem causar regressões de desempenho. In first, each hotfix was delivered under a separate trace flag. Posteriormente, esta prática foi alterada de forma a que a maioria dos sinalizadores fosse combinada com um único sinalizador de rastreio (4199). Esta nova prática foi iniciada em várias versões a partir das seguintes atualizações:

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

  • SQL Server 2008 Service Pack 1 (SP1) Pacote de Atualizações Cumulativas 7

  • SQL Server 2008 R2 (RTM)

O Trace flag 4199 foi utilizado para recolher correções que se destinavam a ficar no local por predefinição num lançamento futuro, enquanto outros sinalizadores de rastreio eram utilizados para situações em que uma correção não se destinava a ficar on-by-default no formato atual. A partir do SQL Server RTM 2016, a definição de COMPATIBILITY_LEVEL base de dados será utilizada para ativar os hotfixes relacionados com o sinalizador de rastreio 4199 on-by-default. Este artigo descreve a mecanismo e a política de como os hotfixes que afetam os planos serão fornecidos para o SQL Server 2016 e versões posteriores.

Mais Informações

No SQL Server 2016, as hotfixes do sinalizador de rastreio 4199 feitas em versões anteriores do SQL Server irão ficar ativadas no COMPATIBILITY_LEVEL 130 de base de dados sem sinalizador de rastreio 4199 ativado. O Trace flag 4199 será utilizado para lançar as atualizações SQL Server 2016 futuras para bases de dados ao utilizar o nível de compatibilidade 130. Uma vez que o trace flag 4199 é recomendado apenas para clientes que estão a ver problemas de desempenho específicos, é recomendável que os clientes remova o sinalizador de rastreio 4199 depois de migrarem as suas bases de dados para o nível de compatibilidade mais recente porque o trace flag 4199 será reutilizado para futuras correções que podem não se aplicar à sua aplicação e podem causar alterações inesperadas do desempenho de planos num sistema de produção. Isto significa que os diferentes hotfixes do sinalizador de rastreio 4199 estão ativados para cada nível de compatibilidade suportado numa determinada versão do produto. O nível de compatibilidade mais recente já ativa todas as correções anteriores no sinalizador de rastreio 4199. Isto significa que atualizar uma base de dados para o nível de compatibilidade mais recente e remover o sinalizador de rastreio 4199 ainda ativa todas as correções de que uma carga de trabalho estava a tirar vantagem antes da atualização da base de dados, mas não as novas correções. Se, posteriormente, os clientes detetarem problemas de desempenho de consulta, experimente ativar a opção de âmbito da base de dados QUERY_OPTIMIZER_HOTFIXES ou a sugestão de consulta ENABLE_QUERY_OPTIMIZER_HOTFIXES num ambiente de teste para determinar se os problemas foram resolvidos. Consulte a documentação sobre o QUERY_OPTIMIZER_HOTFIXES

Note Por predefinição, as bases de dados criadas no SQL Server 2016 utilizam o nível de compatibilidade 130 e as novas lógicas de otimização já estão ativadas.A principal vantagem deste modelo é que reduz os riscos para sistemas de produção durante o processo de atualização. Esta abordagem separa a instalação de uma nova versão principal do SQL Server da ativação automática de todas as novas alterações do processador de consultas. Uma vez que as atualizações principais da versão alteram o formato de ficheiro e não são reversíveis, é uma boa ideia utilizar a definição COMPATIBILITY_LEVEL, pois isto permite que um cliente desatualize rapidamente se for detetado um problema de desempenho de plano inesperado durante uma atualização. Se um cliente encontrar uma alteração de plano inesperada que bloqueie uma atualização da aplicação, o cliente pode facilitar a situação ao aplicar uma sugestão de plano adequada ao utilizar a Loja de Consultas para forçar o plano anterior ou pode facilitar a situação ao contactar o Suporte ao Cliente da Microsoft para ajudar com o problema de forma a fornecer uma alternativa ou uma alternativa. Quando todos os problemas são menores, a atualização pode continuar. Os clientes devem integrar esta capacidade no seu planeamento de atualização para SQL Server 2016.A seguinte tabela explica o modelo de como o trace flag 4199 irá funcionar a partir do SQL Server 2016.

Definição

SQL de compatibilidade

Trace flag 4199

Hotfixes do otimizador antes SQL Server RTM 2016

Hotfixes do otimizador após SQL Server RTM 2016

1.

120

Des desligado

Desativado

Desativado

2.

120

A

Ativado

Desativado

3.

130

Des desligado

Ativado por nível de compatibilidade

Desativado

4.

130

A

Ativado por nível de compatibilidade

Ativado por nível de compatibilidade

Nota A definição não. 3 é recomendada para clientes que estão a atualizar para o SQL Server 2016.Para versões principais após SQL Server 2016, a Microsoft planeia continuar a utilizar este modelo de manutenção para as funcionalidades de otimização. Por predefinição, ou em cada lançamento, todos os hotfixes de sinalizador de rastreio 4199 da versão anterior serão ativados no próximo nível de compatibilidade. Isto significa que o estado recomendado para os clientes após migraram para o nível de compatibilidade mais recente será a desativar o sinalizador de rastreio 4199. Mais tarde, as correções utilizam o sinalizador de rastreio 4199 para ativar correções para os clientes que têm de ativar essas correções específicas numa aplicação. Os clientes são aconselhados a desativar o sinalizador de rastreio 4199 depois de uma aplicação ser atualizada para o nível de compatibilidade mais recente para evitar que alterações futuras inesperadas do otimizador sejam ativadas numa aplicação inesperadamente. A atualização para o nível de compatibilidade mais recente e a remoção do sinalizador de rastreio 4199 ainda ativa todas as correções que uma carga de trabalho estava a tirar vantagem antes da atualização, apenas não as novas correções.

Note Embora muitos hotfixes do otimizador sejam ativados no sinalizador de rastreio 4199, alguns utilizam outros sinalizadores de rastreio. O Trace flag 4199 abrangeu historicamente os sinalizadores de rastreio que são amplamente aplicáveis e que provavelmente ficarão ativados por predefinição num lançamento futuro. Os sinalizadores de rastreio alternativos são utilizados em hotfixes em que as condições são muito específicas para apenas alguns clientes, onde a correção pode causar regressões de desempenho noutros tipos de aplicações ou onde a funcionalidade interna pode ver alterações antes de estar pronta para ficar ativada para todos. A Microsoft continuará a utilizar outros sinalizadores de rastreio conforme necessário para servir o produto.Nota Este artigo foca-se no modelo para lançando o sinalizador de rastreio 4199 sobre o nível de compatibilidade mais recente do produto mais recente. (Na altura da publicação, isto SQL Server 2016.) As hotfixes do otimizador podem ser lançadas em versões mais antigas no mercado do SQL Server ou em níveis de compatibilidade inferiores (120 ou anteriores) do SQL Server 2016. A Microsoft avaliará cada caso e determinará se deve utilizar o sinalizador de rastreio 4199 ou um sinalizador de rastreio diferente. Uma vez que as alterações que não sejam específicas da correcção também são ativadas quando uma movimentação é efetivada para um nível de compatibilidade posterior, não haverá nenhuma prometeção específica de que não irão ocorrer alterações de planos durante uma atualização (com ou sem sinalizador de rastreio 4199). Os clientes devem sempre testar as alterações ao nível de compatibilidade cuidadosamente para as aplicações de produção e devem utilizar tecnologias de mitigação, como o Loja de Consultas, se houver um problema de desempenho relacionado com a escolha de planos.Para referência, os seguintes sinalizadores de rastreio foram utilizados para as hotfixes do processador de consultas antes da introdução do sinalizador de rastreio 4199:

4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.

SQL Server 2012 e versões posteriores

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

Como ativar o sinalizador de rastreio 4199

Pode ativar o sinalizador de rastreio 4199 no arranque ou numa sessão de utilizador. Este sinalizador de rastreio tem um efeito ao nível global ou ao nível da sessão. Para ativar o sinalizador de rastreio 4199, utilize o comando TRACEON DBCC ou utilize –T 4199 como parâmetro de arranque.Se for utilizada a operação RASTREIO DE DBCC\TRACEOFF, esta ação não cria um novo plano em cache para procedimentos armazenados. Os planos podem estar em cache que foram criados sem o sinalizador de rastreio.Para obter informações detalhadas sobre como ativar ou desativar sinalizadores de rastreio e para obter explicações sobre sinalizadores de rastreio ao nível das sessões e globais, consulte os seguintes tópicos no SQL Server Livros Online:

Referências

Para obter mais informações sobre o esquema de noções para SQL Server atualizações, clique no número do artigo seguinte para ver o artigo na Base de Dados de Conhecimento Microsoft:

822499 Novo esquema de nome para pacotes de Microsoft SQL Server atualização de software Para obter mais informações sobre a terminologia de atualizações de software, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

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

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.