Este documento tem como objetivo fornecer orientações sobre Nível de Compatibilidade do SQL Server

Importância de Manter o Nível de Compatibilidade do SQL Server Atual

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

Versões Atuais (Recomendadas)

SGBD32Bits64BitsNível de Compatibilidade PadrãoVersão/PatchInfo TOTVSObservaçõesStatus
SQL Server 2019
X150RTMRecomendado

SQL Server 2022
X160CU5RecomendadoImportante: Aplicar atualização cumulativa 5 ou superior.

Oracle 19c*
XNão se aplica19.3.0.0.0Recomendado

Versões Antigas (Legado)

SGBD32Bits64BitsNível de Compatibilidade PadrãoVersão/PatchInfo TOTVSObservaçõesStatus
SQL Server 2012XX110SP3Não suportado

Término do suporte estendido, mais informações acesse aqui.


SQL Server 2014
X120SP2Não suportado

Término do suporte estendido, mais informações acesse aqui.


SQL Server 2016
X130SP1
Término do suporte padrão, em suporte estendido, mais informações acesse aqui.

SQL Server 2017
X140RTM
Término do suporte padrão, em suporte estendido, mais informações acesse aqui.

Oracle 12c
XNão se aplica12.2Não suportado

Oracle 18c
XNão se aplica18.5.0.0.0
Término do suporte padrão, em suporte estendido, mais informações acesse aqui.

*Obs.: O uso de aplicativos Delphi com o Oracle 19c demandam configurações específicas do SGDB (Uso de Aplicativos Delphi com o oracle 19C), que podem gerar variações em sua performance.


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.

  • Oracle 12c, 11g e anteriores.
  • SQL Server 2014 e anteriores.
 
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