KB4051361 – optimizatoriaus eilutės tikslo informacija užklausos vykdymo plane, įtrauktame į "SQL Server 2014", "2016" ir "2017"

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:

       Kaupiamasis naujinimas 3 SQL serverio 2017

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:

       2 pakeitimų paketas, skirtas "SQL Server 2016"

       3 pakeitimų paketas, skirtas "SQL Server 2014"

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.

Reikia daugiau pagalbos?

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijungti prie "Microsoft Insider"

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×