Symptomy
Po uruchomieniu zapytania w programie Microsoft SQL Server 2012 lub SQL Server 2014, gdy są spełnione następujące warunki, w programie SQL Server 2012 jest generowany nieoptymalny plan wykonania:
-
Kwerenda zawiera instrukcję Case, kiedy,,, a ielse .
-
Instrukcja Jeżeli ma stały warunek, którego wynikiem jest wartość "fałsz".
-
Instrukcja and zawiera klauzulę SELECT .
Uwagi
-
W planie wykonywania jest sprawdzane wyrażenie i porównanie z isFalseOrNull(0). Jednak instrukcja Jeżeli zawsze zwraca wartość "false".
-
Ten problem nie występuje w programie Microsoft SQL Server 2008 R2
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 1 dla programu SQL Server 2014 /en-us/help/2931693
Zbiorcza aktualizacja 7 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2894115
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".