durch einen Hinweis in einem im CU4 (2019) bzw. CU19 (SQL 2017) enthaltenen KB
https://support.microsoft.com/en-us/help/4538497/kb4538497-fix-slow-query-performance-when-using-query-predicates-with
bin ich über das Flag QUERY_OPTIMIZER_HOTFIXES gestolpert.
Wir haben die geänderte Config bislang nur einen Tag getestet, aber subjektiv scheint das System performanter und stabiler zu laufen – es kommt auf einen Versuch an.
Das CU19 sollte bereits installiert sein – dann die folgende Liste abarbeiten
Prüfen / notieren der aktuellen Einstellungen
USE [DBNAME];
SELECT compatibility_level FROM sys.databases WHERE name = ‚[DBNAME]‘;
select Value as QUERY_OPTIMIZER_HOTFIXES from sys.database_scoped_configurations where Name=’QUERY_OPTIMIZER_HOTFIXES‘;
Ändern des Kompatibilitätsgrades auf SQL 2014 und des Falgs Query Optimizer Hotfixes
USE [DBNAME];
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES= on
ALTER DATABASE [DBNAME] SET COMPATIBILITY_LEVEL = 120
Einstellungen Rückgängig machen, falls es nichts bringt:
USE [DBNAME];
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES= off
ALTER DATABASE [DBNAME] SET COMPATIBILITY_LEVEL = 140