KB2894305 – RJEŠENJE: Suboptimalan plan izvršenja generira se kada pokrenete upit u SQL Server 2012 ili SQL Server 2014

Primjenjuje se na
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)

Simptomi

Kada pokrenete upit u Microsoft SQL Server 2012 ili SQL Server 2014, a sljedeći uvjeti su istiniti, u sustavu SQL Server 2012 generira se neoptimalan plan izvršenja:

  • Upit sadrži naredbe Case, When, Then i Else.
  • Naredba When ima uvjet konstante koji se vraća kao "false".
  • Naredba Then sadrži uvjet SELECT.

Bilješke

  • U planu izvršenja naredba Then se procjenjuje i uspoređuje s isFalseOrNull(0). Međutim, naredba When uvijek se vrednuje kao "false".
  • Taj se problem ne pojavljuje u sustavu Microsoft SQL Server 2008 R2

      

Rješenje

Problem je prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server.

Kumulativno ažuriranje 1 za SQL Server 2014 /en-us/help/2931693

Kumulativno ažuriranje 7 za SQL Server 2012 SP1 /en-us/help/2894115

O kumulativnim ažuriranjima za SQL Server

Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:

      

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.