KB3107397-diagnostice îmbunătățite pentru planurile de execuție a interogărilor care implică propagare predicat rezidual în SQL Server

Simptome

Unele planuri de execuție a interogărilor din Microsoft SQL Server includ model de evaluare a unui filtru în partea de sus a unei operațiuni de scanare/interval de tabel sau de index. Unele părți ale predicatului de filtrare se pot potrivi cu o cheie de index și, prin urmare, pot fi utilizate pentru a rula un index căutare sau o scanare de zonă. Părțile rămase ale predicatului sunt cunoscute ca "reziduale" și trebuie evaluate pentru fiecare rând de ieșire din operațiunea Scan sau Range. Acest lucru ar corespunde unui operator de filtrare. Cu toate acestea, pentru a îmbunătăți performanța, SQL Server poate împinge un astfel de filtru în jos la operatorul de acces la tabel propriu-zis. Deși această abordare îmbunătățește performanța generală, în anumite condiții (de exemplu, în cazul unei estimări cardinale inexacte care este legată de sensibilitatea parametrilor), filtrul Scan-dedesubt poate prelucra un număr mai mare de rânduri decât este așteptat. Acest lucru poate fi ascuns în timpul depanării performanței interogărilor atunci când utilizați un plan de execuție real, deoarece numărul real de rânduri returnate va corespunde numărului de rânduri după ce se aplică Predicatul rezidual și nu numărul real de rânduri care sunt scanate dintr-un tabel sau dintr-un index.

Rezolvare

Pentru a îmbunătăți diagnosticele pentru scenariul descris în secțiunea simptome, SQL Server 2012 Service Pack 3 (SP3) și SQL Server 2014 SP2 introduce un nou atribut XML Showplan, se citesc rânduri reale. Acest atribut oferă informații despre numărul de rânduri citite de operator înainte de aplicarea predicatului rezidual. Această funcționalitate a fost introdusă cu pumnul în următoarele pachete Service Pack pentru SQL Server.

Pentru mai multe informații despre SQL Server 2012 Service Pack 3 (SP3), consultați erori remediate în SQL server 2012 Service Pack 3.

Service Pack 2 pentru SQL Server pentru SQL server 2014 SQL Server 2016 Service Pack 1 (SP1) Despre pachetele Service Pack pentru SQL ServerPachetele Service Pack sunt cumulative. Fiecare pachet Service Pack nou conține toate remedierile care se află în pachetele de servicii 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 de servicii 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ă nivelul de versiune, ediție și actualizare a SQL Server și componentele sale

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×