KB3151176 – FIX: Die Anzahl der Zeilen wird für ein Abfrageprädikat unterschätzt, das eine benutzerdefinierte skalare Funktion im SQL Server 2014 umfasst

Gilt für
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

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.