KB4051361 - Informații despre obiectivul rândului Optimizator în planul de executare a interogărilor adăugate în SQL Server 2014, 2016 și 2017

Se aplică la
SQL Server 2016 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) SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core 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 Standard - duplicate (do not use)

Rezumat

Adăugați noul atribut al planului de execuție a interogării EstimateRowsWithoutRowGoal la actualizarea cumulativă 3 (CU3) pentru SQL Server 2017 și la Microsoft SQL Server 2016 cu Service Pack 2 (SP2).

Atunci când instrumentul de optimizare a interogărilor estimează costul unui plan de executare a interogării, presupune, de obicei, că trebuie procesate toate rândurile care se califică din toate sursele. Totuși, unele interogări determină funcția de optimizare a interogărilor să caute un plan care va returna mai rapid un număr mai mic de rânduri. Acest lucru se poate întâmpla dacă interogarea utilizează o clauză TOP , un indiciu de interogare FAST number_rows , o clauză IN sau EXISTS sau o instrucțiune SET ROWCOUNT { number | @number\_var } . În acest caz, optimizatorul utilizează un obiectiv rând atunci când estimează planul de interogare. Dacă se aplică planul de obiective de rânduri, numărul estimat de rânduri în planul de executare a interogării este redus. Aceasta deoarece planul presupune că va trebui procesat un număr mai mic de rânduri pentru a atinge obiectivul rândurilor.

Notă Estimarea efectuată utilizând obiectivul rândului este aproximativă. Dacă distribuția efectivă a datelor nu este uniformă, poate fi mai mică decât numărul real de rânduri care trebuie procesate. Prin urmare, ar putea crea un plan de interogare ineficient. Ca soluție de evitare pentru această problemă, puteți utiliza opțiunea de interogare USE HINT ('DISABLE_OPTIMIZER_ROWGOAL') sau Trace Flag 4138.

Pentru mai multe informații, consultați Actualizare prezintă argumentul indiciu de interogare USE HINT în SQL Server 2016. Cu toate acestea, poate fi o provocare să identificați în interogările complexe dacă un obiectiv de rând este aplicat și cât de mult afectează acesta alegerea planului.

Utilizând atributul EstimateRowsWithoutRowGoal , puteți compara rezultatele cu cele ale atributului EstimateRows pentru a vedea cât de mult afectează obiectivul rândului estimările instrumentului de optimizare a interogărilor.

Notă Dacă obiectivul rândului nu este aplicat unui anumit operator de plan de interogare, acest atribut nu este inclus.

Mai multe informații

Această actualizare este inclusă în următoarea actualizare cumulativă pentru SQL Server:

Actualizarea cumulativă 3 pentru SQL Server 2017

Despre actualizările cumulative pentru SQL Server:

Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Cea mai recentă actualizare cumulativă pentru SQL Server 2017

Informații despre pachetele Service Pack pentru SQL Server

Această actualizare este introdusă în următoarele pachete Service Pack pentru SQL Server:

Service Pack 2 pentru SQL Server 2016

Service Pack 3 pentru SQL Server 2014

Despre pachetele Service Pack pentru SQL Server:

Pachetele Service Pack sunt cumulative. Fiecare pachet Service Pack nou conține toate remedierile din pachetele Service Pack anterioare, împreună cu orice remedieri noi. Recomandarea noastră este să aplicați cel mai recent pachet Service Pack și cea mai recentă actualizare cumulativă pentru acel pachet Service Pack. Nu trebuie să instalați un pachet Service Pack anterior înainte de a instala cel mai recent pachet Service Pack. Utilizați Tabelul 1 din următorul articol pentru a găsi mai multe informații despre cel mai recent pachet Service Pack și cea mai recentă actualizare cumulativă.

Cum se determină versiunea, ediția și nivelul de actualizare al SQL Server și al componentelor sale

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.