KB2894305 – OPRAVA: Při spuštění dotazu v SQL Server 2012 nebo SQL Server 2014 se vygeneruje neoptimální plán provedení

Platí pro
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Příznaky

Pokud spustíte dotaz v systému Microsoft SQL Server 2012 nebo SQL Server 2014 a jsou splněny následující podmínky, vygeneruje se v systému SQL Server 2012 neoptimální plán provedení:

  • Dotaz obsahuje příkaz Case, When, Then a Else.
  • Příkaz When má konstantní podmínku, která se vyhodnocuje jako "false".
  • Příkaz Then obsahuje klauzuli Select.

Poznámky

  • V plánu provedení se příkaz Then vyhodnotí a porovná s isFalseOrNull(0). Příkaz When se ale vždy vyhodnotí jako "false".
  • K tomuto problému nedochází v systému Microsoft SQL Server 2008 R2

      

Řešení

Tento problém byl poprvé opraven v následující kumulativní aktualizaci SQL Server.

Kumulativní aktualizace 1 pro SQL Server 2014 /en-us/help/2931693

Kumulativní aktualizace 7 pro SQL Server 2012 SP1 /en-us/help/2894115

Informace o kumulativních aktualizacích pro SQL Server

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:

      

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.