Sintomi
Quando si esegue una query in Microsoft SQL Server 2012 o SQL Server 2014 e le condizioni seguenti sono vere, in SQL Server 2012 viene generato un piano di esecuzione non ottimale:
-
La query contiene un caso, quando, quindi, e else Statement.
-
L'istruzione When ha una condizione costante che restituisce "false".
-
L'istruzione then contiene una clausola SELECT .
Note
-
Nel piano di esecuzione l'istruzione then viene valutata e confrontata con isFalseOrNull(0). Tuttavia, l'istruzione When restituisce sempre "false".
-
Questo problema non si verifica in Microsoft SQL Server 2008 R2
Risoluzione
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 1 per SQL Server 2014 /en-us/help/2931693
Aggiornamento cumulativo 7 per SQL Server 2012 SP1 /en-us/help/2894115
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".