Problembeschreibung
Wenn Sie eine Abfrage in Microsoft SQL Server 2012 oder SQL Server 2014 ausführen und die folgenden Bedingungen erfüllt sind, wird in SQL Server 2012 ein suboptimaler Ausführungsplan generiert:
-
Die Abfrage enthält eine Case-, When-, Then-und else -Anweisung.
-
Die When -Anweisung hat eine Konstante Bedingung, die zu "false" ausgewertet wird.
-
Die Then -Anweisung enthält eine Select -Klausel.
Hinweise
-
Im Ausführungsplan wird die Then -Anweisung ausgewertet und mit isFalseOrNull(0) verglichen. Die When -Anweisung ergibt jedoch immer "false".
-
Dieses Problem tritt in Microsoft SQL Server 2008 R2 nicht auf.
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2014 /en-us/help/2931693
Kumulatives Update 7 für SQL Server 2012 SP1 /en-us/help/2894115
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.