Symptom
När du kör en fråga i Microsoft SQL Server 2012 eller SQL Server 2014, och följande villkor är uppfyllda, genereras en suboptimal körningsplan i SQL Server 2012:
- Frågan innehåller ett Case-, When-, Then- och Else-uttryck.
- Instruktionen When har ett konstant villkor som utvärderas till "false".
- Instruktionen Then innehåller en Select -sats.
Anteckningar
- I körningsplanen utvärderas och jämförs -instruktionen med isFalseOrNull(0). Instruktionen When utvärderas dock alltid till "false".
- Det här problemet förekommer inte i Microsoft SQL Server 2008 R2
Lösning
Problemet åtgärdades först i följande kumulativa uppdatering av SQL Server.
Kumulativ uppdatering 1 för SQL Server 2014 /en-us/help/2931693
Kumulativ uppdatering 7 för SQL Server 2012 SP1 /en-us/help/2894115
Om kumulativa uppdateringar för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen för SQL Server 2014
- Senaste kumulativa uppdateringen för SQL Server 2012 SP1
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".