Problembeschreibung
Die Kardinalitäts-schätzungs Logik, die als Cardinality Estimator (CE) bekannt ist, wurde in SQL Server 2014 (Kompatibilitätsstufen 120) und SQL Server 2016 (Kompatibilitätsstufen 130) neu gestaltet, um die Qualität von Abfrageplänen zu verbessern. Wenn Sie jedoch eine komplexe Abfrage kompilieren, die viele Verknüpfungen mit einem DISTINCT-oder Group by-Operator enthält, kann die Kompilierung viel länger als erwartet dauern.
Fehlerbehebung
Dieses Update zur Behebung dieses Problems ist in Service Pack 1 für SQL Server 2016 enthalten.Hinweis Nachdem Sie dieses Update installiert haben, müssen Sie das Ablaufverfolgungsflag 4199 festlegen, um den Fix zu aktivieren. Informationen zum Einrichten des Ablaufverfolgungsflags 4199 finden Sie im Thema Ablaufverfolgungsflags (Transact-SQL) auf MSDN.
Jeder neue Build für SQL Server 2016 enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen Build enthalten waren. Wir empfehlen, den neuesten Build für SQL Server 2016 zuinstallieren.
Problemumgehung
Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:
-
Verwenden Sie das Ablaufverfolgungsflag 9481, um das Bewertungsmodell für den Abfrageoptimierer auf SQL Server 2012 oder eine frühere Version einzurichten.
-
Ändern Sie den Kompatibilitätsgrad der Datenbank in SQL Server 2012 (110) oder eine frühere Version.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie , mit der Microsoft Softwareupdates beschreibt.