KB3107397 – poboljšana dijagnostika planova izvršenja upita koji obuhvaćaju rezidualno pritiskanje predikata u SQL Server

Primjenjuje 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šenja upita u sustavu Microsoft SQL Server obuhvaćaju uzorak procjene filtra povrh tablice ili operaciju pregleda/raspona indeksa. Neki dijelovi predikata filtra mogu odgovarati ključu indeksa pa se stoga mogu koristiti za pokretanje traženja indeksa ili pregleda raspona. Preostali dijelovi predikata poznati su kao "ostaci" i moraju se procijeniti za izlaz svakog retka pomoću operacije skeniranja ili raspona. To bi odgovaralo operatoru filtra. Međutim, da bi se poboljšale performanse, SQL Server može gurnuti takav filtar do samog operatora pristupa tablici.

Iako taj pristup poboljšava ukupne performanse, u nekim uvjetima (na primjer, u slučaju netočne procjene kardinalnosti koja je povezana s osjetljivošću parametara) filtar za skeniranje ispod može obrađivati veći broj redaka nego što se očekivalo. Ta činjenica može biti skrivena tijekom otklanjanja poteškoća s performansama upita kada koristite stvarni plan izvršenja jer će stvarni broj redaka koji se vraćaju odgovarati broju redaka nakon primjene rezidualnog predikata, a ne stvarnom broju redaka pregledanih iz tablice ili indeksa.

Rješenje

Radi poboljšanja dijagnostike za scenarije opisane u odjeljku Simptomi, SQL Server 2012 Service Pack 3 (SP3) i SQL Server 2014 SP2 uvode novi xml atribut showplan, čitanje stvarnih redaka. Taj atribut pruža informaciju o tome koliko je redaka operator pročitao prije primjene rezidualnog predikata.

Ta je funkcija prvi put predstavljena u sljedećim servisnim paketima za SQL Server. 

Dodatne informacije o servisnom paketu SQL Server 2012 Service Pack 3 (SP3) potražite u ispravljenim programskim pogreškama u servisnom paketu SQL Server 2012 Service Pack 3.

Service Pack 2 za SQL Server za SQL Server 2014
        
         SQL Server 2016 Service Pack 1 (SP1) 

O servisnim paketima za SQL Server

Servisni paketi kumulativni su. Svaki novi servisni paket sadrži sve popravke iz prethodnih servisnih paketa, zajedno sa svim novim popravcima. Preporučujemo da za taj servisni paket primijenite najnoviji servisni paket i najnovije kumulativno ažuriranje. Ne morate instalirati prethodni servisni paket da biste instalirali najnoviji. U tablici 1 sljedećeg članka potražite dodatne informacije o najnovijem servisnom paketu i najnovijem kumulativnom ažuriranju.

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