Kopsavilkums
Pievienojiet jauno EstimateRowsWithoutRowGoal vaicājuma izpildes plāna atribūtu SQL Server 2017 kumulatīvais atjauninājums 3 (CU3) un Microsoft SQL Server 2016 2. servisa PAKOTNE (SP2).
Kad vaicājuma optimizētājs novērtē vaicājuma izpildes plāna izmaksas, parasti pieņem, ka visas kvalificētās rindas no visiem avotiem ir jāapstrādā. Taču daži vaicājumi izraisa vaicājumu optimizētāju meklēt plānu, kas ātrāk atgriezīs mazāku rindu skaitu. Tas var notikt, ja vaicājums izmanto augšējo klauzulu, ātro number_rows vaicājuma atgādinājumu, klauzulu HAVING vai nepastāv, vai arī iestatījumu ROWCOUNT {Number | @number_var} priekšraksts. Šajā gadījumā optimizētājs izmanto rindas mērķi, ja tas aplēš vaicājuma plānu. Ja tiek lietots rindas mērķa plāns, vaicājuma izpildes plānā esošo rindu aptuvenais skaits ir samazināts. Tas ir tāpēc, ka plānā tiek pieņemts, ka mazāks rindu skaits būs jāapstrādā, lai sasniegtu rindas mērķi.
Piezīme. Aprēķinātā vērtība, kas izveidota, izmantojot rindas mērķi, ir aptuvena. Ja faktiskais datu sadalījums nav viendabīgs, tas var būt mazāks par faktisko rindu skaitu. Tāpēc tas var izveidot neefektīvu vaicājumu plānu. Lai atrisinātu šo problēmu, varat izmantot vaicājuma opciju lietot atgādinājumu (DISABLE_OPTIMIZER_ROWGOAL) vai izsekošanas karodziņu 4138.
Lai iegūtu papildinformāciju, skatiet rakstu atjauninājuma ievads 2016 par norādi Tomēr var būt grūti noteikt sarežģītus vaicājumus par to, vai tiek lietots rindas mērķis un cik lielā mērā tas ietekmē plāna izvēli.
Izmantojot atribūtu EstimateRowsWithoutRowGoal , varat salīdzināt rezultātus ar EstimateRows atribūtu, lai skatītu, cik daudz rindas mērķis ietekmē vaicājuma optimizētāja novērtējumus.
Piezīme. Ja noteiktam vaicājumu plāna operatoram nav lietots rindas mērķis, šis atribūts nav iekļauts.
Papildinformācija
Šis atjauninājums ir iekļauts šajā SQL Server kumulatīvajā atjauninājumā:
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Informācija par pakalpojumu pakotnes SQL Server
Šis atjauninājums ir ieviests šādās SQL Server servisa pakotnēs:
Pakalpojumu pakotnes ir kumulatīvas. Katrā jaunajā servisa pakotnē ir iekļauti visi labojumi, kas ir iepriekšējās servisa pakotnēs, kā arī visi jaunie labojumi. Mūsu ieteikums ir lietot jaunāko servisa pakotni un jaunāko šīs servisa pakotnes kumulatīvo atjauninājumu. Pirms jaunākās servisa pakotnes instalēšanas jums nav jāinstalē iepriekšējā servisa pakotne. Tālāk esošajā rakstā Izmantojiet 1. tabulu, lai atrastu papildinformāciju par jaunāko servisa pakotni un jaunāko kumulatīvo atjauninājumu.
Kā noteikt SQL Server un tās komponentu versiju, izdevumu un atjaunināšanas līmeni
Atsauces
Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.