Este documento tem como objetivo fornecer orientações sobre Nível de Compatibilidade do SQL Server
O nível de compatibilidade do SQL Server define como o banco de dados interpreta comandos T-SQL, aplica otimizações e habilita recursos. Embora seja possível manter bancos configurados em níveis antigos, essa prática pode trazer riscos e limitar o funcionamento adequado dos sistemas, especialmente na linha RM.
1. Segurança
Manter o nível de compatibilidade atualizado ajuda a garantir que o banco de dados utilize recursos modernos de segurança. Compatibilidades antigas podem manter comportamentos obsoletos que não seguem as práticas atuais, aumentando a superfície de risco do ambiente.
2. Compatibilidade com Scripts da Linha RM
Os produtos da linha RM trabalham com scripts SQL desenvolvidos considerando as funcionalidades e comportamentos mais recentes do SQL Server. Se o banco estiver em um nível de compatibilidade defasado, comandos podem não ser interpretados corretamente, resultando em erros de execução ou atualização do sistemas.
3. Desempenho e Estabilidade
A utilização de níveis de compatibilidade mais recentes permite que o otimizador de consultas do SQL Server adote planos mais inteligentes, garantindo melhor desempenho e eficiência para os scripts da linha RM. Já manter níveis antigos pode resultar em lentidão, maior consumo de recursos e até instabilidade em rotinas. Um exemplo é a migração para os níveis 120 ou 130, que pode causar degradação em consultas com joins alinhados devido à alteração no cálculo de cardinalidade, conforme documentado pela própria Microsoft. Caso seja realmente necessário adotar esses níveis, a Microsoft recomenda reescrever a consulta, aplicar o hint que força a cardinalidade anterior ou migrar diretamente para versões superiores. Mais detalhes em: https://learn.microsoft.com/en-us/troubleshoot/sql/database-engine/performance/upgrade-compatibility-level-degrades-performance
| SGBD | 32Bits | 64Bits | Nível de Compatibilidade Padrão | Versão/Patch | Info TOTVS | Observações | Status |
|---|---|---|---|---|---|---|---|
| SQL Server 2019 | X | 150 | RTM | Recomendado | |||
| SQL Server 2022 | X | 160 | CU5 | Recomendado | Importante: Aplicar atualização cumulativa 5 ou superior. |
| SGBD | 32Bits | 64Bits | Nível de Compatibilidade Padrão | Versão/Patch | Info TOTVS | Observações | Status |
|---|---|---|---|---|---|---|---|
| SQL Server 2012 | X | X | 110 | SP3 | Não suportado | Término do suporte estendido, mais informações acesse aqui. | |
| SQL Server 2014 | X | 120 | SP2 | Não suportado | Término do suporte estendido, mais informações acesse aqui. | ||
| SQL Server 2016 | X | 130 | SP1 | Término do suporte padrão, em suporte estendido, mais informações acesse aqui. | |||
| SQL Server 2017 | X | 140 | RTM | Término do suporte padrão, em suporte estendido, mais informações acesse aqui. |
A partir da release 12.1.2510 todas as versões não suportadas passam a ter seu uso impedido na atualização da base de dados Linha RM.
|
Esta alteração deve ser feita pelo DBA responsável, mais detalhes sobre este procedimento consulte a documentação da Microsoft.
https://learn.microsoft.com/pt-br/sql/relational-databases/databases/view-or-change-the-compatibility-level-of-a-database?view=sql-server-ver17