Alterar o nível de compatibilidade do banco de dados e usar o Repositório de ConsultasChange the Database Compatibility Level and use the Query Store

APLICA-SE A: simSQL Server (somente Windows) nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server (Windows only) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Do SQL Server 2016 (13.x)SQL Server 2016 (13.x) ao SQL ServerSQL Server, algumas alterações são habilitadas somente quando o nível de compatibilidade do banco de dados é alterado.In SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL ServerSQL Server, some changes are only enabled once the database compatibility level has been changed. Isso foi feito por vários motivos:This was done for several reasons:

  • Uma vez que a atualização é uma operação unidirecional (não é possível fazer downgrade do formato de arquivo), há valor em separar a habilitação de novos recursos para uma operação separada dentro do banco de dados.Since upgrade is a one-way operation (it is not possible to downgrade the file format), there is value in separating the enablement of new features to a separate operation within the database. É possível reverter uma configuração para um nível de compatibilidade do banco de dados anterior.It is possible to revert a setting to a prior database compatibility level. O novo modelo reduz o número de itens que devem ocorrer durante uma janela de interrupção.The new model reduces the number of things that must happen during an outage window.

  • Alterações no processador de consulta podem ter efeitos complexos.Changes to the query processor can have complex effects. Até mesmo uma alteração "boa" para o sistema pode ser ótima para a maioria das cargas de trabalho – ela pode causar uma regressão inaceitável em uma consulta importante para outros.Even though a "good" change to the system may be great for most workloads - it may cause an unacceptable regression on an important query for others. Separar essa lógica do processo de atualização permite que determinados recursos, assim como o Repositório de Consultas, façam rapidamente a mitigação das escolhas de plano ou até mesmo evitem-nas completamente em servidores de produção.Separating this logic from the upgrade process, allows for features such as the Query Store, to mitigate plan choice regressions quickly or even avoid them completely in production servers.

Importante

Os comportamentos a seguir são esperadas para SQL Server 2017 (14.x)SQL Server 2017 (14.x) quando um banco de dados for anexado ou restaurado e após uma atualização in-loco:The below behaviors are expected for SQL Server 2017 (14.x)SQL Server 2017 (14.x) when a database is attached or restored, and after an in-place upgrade:

  • Se o nível de compatibilidade de um banco de dados de usuário era 100 ou mais alto antes da atualização, ele permanecerá o mesmo depois da atualização.If the compatibility level of a user database was 100 or higher before the upgrade, it remains the same after upgrade.
  • Se o nível de compatibilidade de um banco de dados do usuário era 90 antes da atualização, no banco de dados atualizado esse nível será definido como 100, que é o mais baixo com suporte no SQL Server 2017 (14.x)SQL Server 2017 (14.x).If the compatibility level of a user database was 90 before upgrade, in the upgraded database, the compatibility level is set to 100, which is the lowest supported compatibility level in SQL Server 2017 (14.x)SQL Server 2017 (14.x).
  • Os níveis de compatibilidade dos bancos de dados tempdb, model, msdb e Resource são definidos para o nível de compatibilidade atual após o upgrade.The compatibility levels of the tempdb, model, msdb and Resource databases are set to the current compatibility level after upgrade.
  • O banco de dados do sistema mestre retém o nível de compatibilidade anterior ao upgrade.The master system database retains the compatibility level it had before upgrade.

O processo de atualização para habilitar a nova funcionalidade do processador de consulta está relacionado ao modelo de manutenção pós-lançamento do produto.The upgrade process to enable new query processor functionality is related to the post-release servicing model of the product. Algumas dessas correções são liberadas sob o sinalizador de rastreamento 4199.Some of those fixes are released under trace flag 4199. Clientes que precisam de correções podem optar por aceitar essas correções sem causar regressões inesperadas para outros clientes.Customers needing fixes can opt-in to those fixes without causing unexpected regressions for other customers. O modelo de manutenção pós-lançamento para hotfixes do processador de consulta é documentado aqui.The post-release servicing model for query processor hotfixes is documented here. Começando com o SQL Server 2016 (13.x)SQL Server 2016 (13.x), a mudança para um novo nível de compatibilidade implica no sinalizador de rastreamento 4199 não ser mais necessário, porque essas correções agora estão habilitadas por padrão no último modo de compatibilidade.Beginning with SQL Server 2016 (13.x)SQL Server 2016 (13.x), moving to a new compatibility level implies that trace flag 4199 is no longer needed, because those fixes are now enabled by default in the latest compatibility level. Portanto, como parte do processo de atualização, é importante validar que o 4199 não está habilitado quando o processo de atualização for concluído.Therefore, as part of the upgrade process, it is important to validate that 4199 is not enabled once the upgrade process completes.

Observação

No entanto, o sinalizador de rastreamento 4199 ainda é necessário para habilitar qualquer nova correção de processador de consulta lançada após o RTM, se aplicável.However, trace flag 4199 is still needed to enable any new query processor fixes released after RTM, if applicable.

O fluxo de trabalho recomendado para atualizar o processador de consulta para a versão mais recente do código está documentado em Manter a estabilidade do desempenho durante a atualização para a seção do SQL Server mais recente de Cenários de uso do repositório de consultas, conforme mostrado abaixo.The recommended workflow for upgrading the query processor to the latest version of the code is documented in the Keep performance stability during the upgrade to newer SQL Server section of Query Store Usage Scenarios, as seen below.

query-store-usage-5query-store-usage-5

Do SQL Server Management StudioSQL Server Management Studio v18 em diante, os usuários podem ser guiados por meio do fluxo de trabalho recomendado usar o Assistente de Ajuste de Consulta.Starting with SQL Server Management StudioSQL Server Management Studio v18, users can be guided through the recommended workflow using the Query Tuning Assistant. Para obter mais informações, veja Atualizando bancos de dados usando o Assistente de Ajuste de Consulta.For more information, see Upgrading Databases by using the Query Tuning Assistant.

Consulte TambémSee Also

Exibir ou alterar o nível de compatibilidade de um banco de dados View or Change the Compatibility Level of a Database
Cenários de uso do Repositório de Consultas Query Store Usage Scenarios
Nível de compatibilidade de ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL) Compatibility Level
Atualizando bancos de dados usando o Assistente de Ajuste de ConsultaUpgrading Databases by using the Query Tuning Assistant