Požymiai
Kai kurie užklausų vykdymo planai "Microsoft „SQL Server“" apima filtro vertinimo modelį lentelės viršuje arba rodyklės nuskaitymo / diapazono operaciją. Kai kurios filtro taisyklės sąlygos dalys gali atitikti rodyklės raktą, todėl gali būti naudojamos rodyklės paieškos arba diapazono nuskaitymui vykdyti. Likusios predikato dalys yra žinomos kaip "liekamosios" ir turi būti įvertintos kiekvienos eilutės išvesties nuskaitymo arba diapazono operacija. Tai atitiktų filtro operatorių. Tačiau, norėdamas pagerinti našumą, „SQL Server“ gali nustumti tokį filtrą į patį lentelės prieigos operatorių.
Nors šis metodas pagerina bendrą našumą, esant tam tikroms sąlygoms (pvz., tuo atveju, kai pateikiamas netikslus kardinalumo įvertinimas, susijęs su parametrų jautrumu), žemiau esantis nuskaitymo filtras gali apdoroti didesnį eilučių skaičių nei tikėtasi. Šis faktas gali būti paslėptas užklausų veikimo trikčių šalinimo metu, kai naudojate faktinį vykdymo planą, nes faktinis grąžintų eilučių skaičius atitiks eilučių skaičių pritaikius liekamąją taisyklės sąlygą, o ne faktinį eilučių, nuskaitytų iš lentelės ar indekso, skaičių.
Sprendimas
Siekiant pagerinti scenarijaus, aprašyto skyriuje Simptomai, diagnostiką, "„SQL Server“ 2012 Service Pack 3" (SP3) ir "„SQL Server“ 2014 SP2" pristato naują showplan XML atributą "Actual Rows Read". Šis atributas pateikia informaciją apie tai, kiek eilučių operatorius perskaitė prieš taikydamas liekamąją taisyklės sąlygą.
Ši funkcija pirmą kartą buvo pristatyta šiuose "„SQL Server“" pakeitimų paketuose.
Daugiau informacijos apie "„SQL Server“ 2012" 3 pakeitimų paketą (SP3) rasite "„SQL Server“ 2012" 3 pakeitimų paketo ištaisytas klaidas.
2 pakeitimų paketas, skirtas „SQL Server“ „SQL Server“ 2014
„SQL Server“ 2016 1 pakeitimų paketas (SP1)
Apie "„SQL Server“" pakeitimų paketus
Pakeitimų paketai yra kaupiamieji. Kiekviename naujame pakeitimų pakete yra visos ankstesniuose pakeitimų paketuose esančios pataisos ir visos naujos pataisos. Rekomenduojame taikyti naujausią pakeitimų paketą ir naujausią to pakeitimų paketo kaupiamąjį naujinimą. Prieš įdiegiant naujausią pakeitimų paketą nereikia įdiegti ankstesnio pakeitimų paketo. Norėdami rasti daugiau informacijos apie naujausią pakeitimų paketą ir naujausią kaupiamąjį naujinimą, naudokite šio straipsnio 1 lentelę.
Kaip nustatyti "„SQL Server“" ir jo komponentų versiją, leidimą ir atnaujinimo lygį