What is the database compatibility level?
A compatibility level is an option associated with each database.
It controls some database behaviors to be compatible with a particular version of SQL Server.
Why should you care about the compatibility level?
In addition to the new features, there are changes associated with database compatibility levels and cardinality estimator versions when you are migrating to a newer version of SQL Server (SQL Server 2014 and newer).
Usually, a new cardinality estimator gives you equal or better performance for most queries, but sometimes you can have queries with significant performance regressions.
How can you change the database compatibility level?
It is essential to have a migration plan that includes testing the database compatibility level you wish to use in the new version of SQL Server.
You can follow the Microsoft best practices below for an upgrade process.
- Upgrade to the latest SQL Server version and keep the source database compatibility level.
- Right-click the database and then click Properties;
- In the Options tab, choose the Compatibility level.
- Use the Query Store feature to collect a workload baseline for each database.
- Change the database compatibility level to the latest version.
- Use the Query Store again, look for the bad queries, and fix their performance regressions by forcing the last known good plan.