Symptome
Nehmen Sie folgendes Szenario an:
- Sie haben eine Abfrage, die ein Prädikat enthält, das eine parametrisierte benutzerdefinierte skalare Funktion beinhaltet.
- Es gibt mehrere Kombinationen von Eingabeparameterwerten, die mit dieser benutzerdefinierten Funktion zum gleichen Ergebnis führen können.
- SQL Server verwendet den neuen Kardinalitätsschätzer, in dem der Datenbankkompatibilitätsmodus auf 120 festgelegt ist.
In diesem Szenario tritt beim Ausführen der Abfrage eine schlechte Abfrageleistung aufgrund einer falsch geschätzten Anzahl von Zeilen für das Prädikat auf, das die benutzerdefinierte Funktion im Abfrageplan umfasst.
Lösung
Dieses Problem wurde erstmals im folgenden kumulativen Update für SQL Server behoben:
Kumulatives Update 6 für SQL Server 2014 Service Pack 1
Nachdem Sie dieses kumulative Updatepaket installiert haben, müssen Sie das Ablaufverfolgungsflag 4199 aktivieren. Dazu können Sie den Startparameter -T4199 hinzufügen. Sie können auch die Anweisung dbcc traceon(4199) für eine bestimmte Sitzung verwenden.
Informationen zu kumulativen Updates für SQL Server
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:
Neuestes kumulative Update für SQL Server 2014
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.
Referenzmaterial
Erfahren Sie mehr über die Terminologie , die Microsoft zum Beschreiben von Softwareupdates verwendet.