Suvestinė
Įtraukite naują Estimaterowswithoutrowgoal užklausos vykdymo plano ATRIBUTĄ prie SQL serverio 2017 3 kaupiamąjį naujinimą (CU3) ir "Microsoft SQL Server 2016" 2 pakeitimų paketą (SP2).
Kai užklausos optimizatoriaus apskaičiuoja užklausos vykdymo plano kainą, paprastai manoma, kad visos reikalavimus atitinkančios eilutės iš visų šaltinių turi būti apdorojamos. Tačiau kai kurios užklausos Optimizuokite užklausos optimizatorių, kad būtų ieškoma plano, kuris greičiau pateiks mažesnį eilučių skaičių. Taip gali nutikti, jei užklausa naudoja aukščiausiąsąlygą,sparčiąją number_rows užklausos užuominą, sąlygą arba yra sąlygą arbanustatytą rownumber {Number | @number_var} . Šiuo atveju optimizatorius naudoja eilutės tikslą, kai apskaičiuoja užklausos planą. Jei taikomas eilutės tikslo planas, apskaičiuotas užklausos vykdymo plano eilučių skaičius sumažinamas. Taip yra todėl, kad planas daro prielaidą, kad norint pasiekti eilutės tikslą reikia apdoroti mažesnį eilučių skaičių.
Pastaba Įvertinimas, atliktas naudojant eilutės tikslą, yra apytikslis. Jei faktinis duomenų paskirstymas yra ne vienodas, jis gali būti mažesnis už faktinį skaičių eilučių, kurias reikia apdoroti. Todėl gali būti sukurtas neefektyvus užklausos planas. Kaip šios problemos sprendimo būdą galite naudoti užuominų ("DISABLE_OPTIMIZER_ROWGOAL") užklausos parinktį arba sekimo žymę 4138.
Daugiau informacijos ieškokite straipsnyje " SQL Server 2016", skirto naudoti užuominų užklausos užuominos argumentas, ieškokite straipsnyje naujinimas. Tačiau gali būti sudėtinga nustatyti sudėtingiausias užklausas, kad būtų taikomas eilutės tikslas ir kiek ji paveiktų plano pasirinkimą.
Naudodami atributą Estimaterowswithoutrowgoal , galite lyginti rezultatus su pagal atributą Estimaterows , kad pamatytumėte, kiek eilutės tikslo įtakoja užklausos optimizatoriaus įvertinimus.
Pastaba Jeigu eilutės tikslas nėra taikomas konkrečiam užklausos plano operatoriui, Šis atributas neįtraukiamas.
Daugiau informacijos
Šis naujinimas yra įtrauktas į šį kaupiamąjį naujinimą SQL Server:
Kiekvienas naujas Kaupiamasis naujinimas, skirtas "SQL Server", yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio kaupiamojo naujinimo. Peržiūrėkite naujausius kaupiamuosius SQL serverio naujinimus:
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2017"
SQL serverio pakeitimų paketo informacija
Šis naujinimas yra įtrauktas į šiuos SQL serverio pakeitimų paketus:
Pakeitimų paketai yra kaupiamieji. Kiekviename naujame pakeitimų pakete yra visos pataisos, kurios yra ankstesniuose pakeitimų paketuose, taip pat visos naujos pataisos. Mūsų rekomendacija yra taikyti naujausią pakeitimų paketą ir naujausią kaupiamąjį naujinimą šiam pakeitimų paketui. Prieš diegiant naujausią pakeitimų paketą, neturite įdiegti ankstesnio pakeitimų paketo. Naudokite 1 lentelę šiame straipsnyje, jei norite rasti daugiau informacijos apie naujausią pakeitimų paketą ir naujausią kaupiamąjį naujinimą.
Kaip nustatyti "SQL Server" ir jo komponentų versiją, leidimą ir naujinimo lygį
Nuorodos
Sužinokite apie terminologiją, kurią "Microsoft" naudoja programinės įrangos naujinimams apibūdinti.