Simptomi
Izpildot vaicājumu programmā Microsoft SQL Server 2012 vai SQL Server 2014, un ir spēkā tālāk minētie nosacījumi, SQL Server 2012 tiek ģenerēts neoptimāls izpildes plāns:
-
Vaicājumā ir lieta, Ja, pēc tamun citur .
-
Priekšrakstam IF ir konstants nosacījums, kas tiek novērtēts kā aplams.
-
Priekšrakstā Statement ir klauzula Select .
Piezīmes.
-
Izpildes plānā priekšraksts Statement tiek novērtēts un salīdzināts ar isFalseOrNull(0). Tomēr priekšraksts IF vienmēr tiek novērtēts kā aplams.
-
Šī problēma nav sastopama programmā Microsoft SQL Server 2008 R2
Risinājums
Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 1 SQL Server 2014 /en-us/help/2931693
Kumulatīvais atjauninājums 7 SQL Server 2012 SP1 /en-us/help/2894115
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".