KB3107397 – Poboljšana dijagnostika za planove izvršavanja upita koji uključuju rezidualni predikat pushdown u sistemu SQL Server

Primenjuje se na
SQL Server 2012 Enterprise SQL Server 2012 Web SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use)

Simptomi

Neki planovi izvršavanja upita u sistemu Microsoft SQL Server uključuju obrazac procene filtera na vrhu tabele ili operaciju skeniranja/opsega indeksa. Neki delovi predikata filtera mogu da se podudaraju sa ključem indeksa i mogu se koristiti za pokretanje traženja indeksa ili skeniranja opsega. Preostali delovi predikata su poznati kao "ostaci" i moraju se proceniti za svaki izlaz reda pomoću operacije skeniranja ili opsega. Ovo bi odgovaralo operatoru filtera. Međutim, radi poboljšanja performansi, SQL Server može da prosledi takav filter do samog operatora za pristup tabelama.

Iako ovaj pristup poboljšava ukupne performanse, pod nekim uslovima (na primer, u slučaju netačne procene kardinalnosti koja je povezana sa osetljivošću parametara), filter skeniranja ispod možda obrađuje veći broj redova nego što je očekivano. Ova činjenica može biti skrivena tokom rešavanja problema sa performansama upita kada koristite stvarni plan izvršavanja, zato što će stvaran broj redova koji se vraća odgovarati broju redova nakon primene rezidualnog predikata, a ne stvarnom broju redova koji se skeniraju iz tabele ili indeksa.

Rešenje

Da bi se poboljšala dijagnostika za scenario opisan u odeljku "Simptomi", SQL Server 2012 Service Pack 3 (SP3) i SQL Server 2014 SP2 uvode novi ShowPlan XML atribut, Čitanje stvarnih redova. Ovaj atribut pruža informacije o tome koliko je redova pročitao operator pre nego što je primenjen rezidualni predikat.

Ova funkcionalnost je prvi put predstavljena u sledećim servisnim paketima za SQL Server. 

Više informacija o sistemu SQL Server 2012 servisni paket 3 (SP3), potražite u greškama koje su ispravljene u sistemu SQL Server 2012 servisni paket 3 .

Servisni paket 2 za SQL Server za SQL Server 2014
        
         SQL Server 2016 servisni paket 1 (SP1) 

Osnovni podaci o servisnim paketima za SQL Server

Servisni paketi su kumulativni. Svaki novi servisni paket sadrži sve ispravke koje su u prethodnim servisnim paketima, zajedno sa svim novim ispravkama. Preporučujemo da primenite najnoviji servisni paket i najnoviju kumulativnu ispravku za taj servisni paket. Ne morate da instalirate prethodni servisni paket pre nego što instalirate najnoviji servisni paket. Koristite Tabelu 1 u sledećem članku da biste pronašli više informacija o najnovijem servisnom paketu i najnovijoj kumulativnoj ispravci.

Kako odrediti verziju, izdanje i nivo ažuriranja sistema SQL Server i njegovih komponenti