Salt la conținutul principal
Asistență
Conectare

KB974006-SQL Server Query Optimizer remedierea rapidă Trace Flag 4199 Service model

Lucrați de oriunde de pe orice dispozitiv cu Microsoft 365

Faceți upgrade la Microsoft 365 pentru a lucra oriunde cu cele mai recente caracteristici și actualizări.

Faceți upgrade acum

INTRODUCERE

Versiunile de Microsoft SQL Server mai târziu decât SQL Server 2000 Service Pack 3 (SP3) au livrat cele mai multe remedieri rapide în Optimizatorul de interogare într-o stare dezactivată, pentru a împiedica clienții de producție existenți să vadă modificările planului așteptat care ar putea provoca regresii de performanță. La început, fiecare remediere rapidă a fost livrată sub un semnalizator de urmărire separat. Mai târziu, această practică a fost modificată, astfel încât majoritatea semnalizărilor să fie combinate sub un singur semnal de urmărire (4199). Această nouă practică a fost inițiată între mai multe versiuni, începând cu următoarele actualizări:

  • Actualizarea cumulativă SQL Server 2005 Service Pack 3 (SP3) 6

  • Pachetul de actualizare cumulativă SQL Server 2008 Service Pack 1 (SP1) 7

  • SQL Server 2008 R2 (RTM)

Semnalizatorul de urmărire 4199 a fost utilizat pentru a colecta remedieri rapide care au fost destinate să devină în mod implicit într-o lansare viitoare, în timp ce alte semnalizări de urmărire au fost utilizate pentru situațiile în care o remediere nu a fost intenționată să devină implicită în formularul curent. Începând cu SQL Server 2016 RTM, setarea bază de date COMPATIBILITY_LEVEL va fi utilizată pentru a permite urmărirea semnalului remedieri rapide asociate la 4199. Acest articol descrie mecanica și politica modului în care vor fi livrate remedierile rapide ale planului pentru SQL Server 2016 și versiuni mai recente.

Mai multe informații

În SQL Server 2016, Trace Flag 4199 remedierile rapide care sunt făcute în versiunile anterioare de SQL Server va deveni activat sub bază de date COMPATIBILITY_LEVEL 130 fără trasare semnalizatorul 4199 activat. Semnalizatorul de urmărire 4199 va fi utilizat pentru a elibera orice viitoare remedieri rapide SQL Server 2016 pentru bazele de date, utilizând nivelul de compatibilitate 130. Deoarece semnalizatorul de urmărire 4199 este recomandat doar pentru clienții care văd probleme specifice de performanță, clienții sunt sfătuiți să elimine semnalizatorul de urmărire 4199 după ce migrează bazele lor de date la cel mai recent nivel de compatibilitate, deoarece urmărirea semnalului 4199 va fi reutilizată pentru remedieri viitoare care pot să nu se aplice aplicației și ar putea provoca modificări de performanță neașteptate ale planului Acest lucru înseamnă că sunt activate diferite semnalizări de urmărire 4199 remedieri rapide pentru fiecare nivel de compatibilitate acceptat într-o anumită lansare de produs. Cel mai recent nivel de compatibilitate activează deja toate remedierile anterioare sub Trace flag 4199. Acest lucru înseamnă că upgrade-ul unei baze de date la cel mai recent nivel de compatibilitate și eliminarea semnalizării de urmărire 4199 încă activează toate remedierile pe care le-a avut un volum de lucru înainte de upgrade-ul bazei de date Dacă la un moment dat clienții întâmpină probleme de performanță a interogărilor, experimentați cu activarea opțiunii domeniu de bază de date QUERY_OPTIMIZER_HOTFIXES sau sugestie interogare ENABLE_QUERY_OPTIMIZER_HOTFIXES într-un mediu de testare pentru a determina dacă problemele sunt rezolvate. Consultați documentația despre QUERY_OPTIMIZER_HOTFIXES

Notă În mod implicit, bazele de date care sunt create în SQL Server 2016 utilizează nivelul de compatibilitate 130 și au activat deja noua logică de optimizare. Avantajul major al acestui model este faptul că reduce riscul pentru sistemele de producție în timpul procesului de upgrade. Această abordare separă instalarea unei noi versiuni majore de SQL Server din activarea automată a tuturor modificărilor de procesor de interogare nou. Deoarece upgrade-urile de versiune majoră modifică formatul de fișier și nu sunt reversibile, este o idee bună să utilizați setarea COMPATIBILITY_LEVEL, deoarece acest lucru permite unui client să reducă rapid dacă se găsește o problemă de performanță a planului neașteptată în timpul unui upgrade. Dacă un client găsește o modificare a planului neașteptată care blochează un upgrade de aplicație, clientul poate ușura situația aplicând un indiciu de plan corespunzător utilizând depozitul de interogări pentru a impune planul anterior sau poate ușura situația, contactând asistența pentru clienți Microsoft, pentru a vă ajuta cu problema, pentru a oferi o soluție sau o remediere rapidă. Atunci când toate problemele sunt diminuate, upgrade-ul poate continua. Clienții trebuie să integreze această posibilitate în planificarea upgrade-ului pentru SQL Server 2016. Următorul tabel explică modelul pentru modul în care semnalizatorul de urmărire 4199 va funcționa începând cu SQL Server 2016.

Setarea

Nivel de compatibilitate SQL

Semnalizatorul de urmărire 4199

Remedieri rapide Optimizer înainte de SQL Server 2016 RTM

Remedieri rapide Optimizer după SQL Server 2016 RTM

1.

120

Pe

Dezactivat

Dezactivat

2.

120

Pe

Activat

Dezactivat

3.

130

Pe

Activat de nivelul de compatibilitate

Dezactivat

4.

130

Pe

Activat de nivelul de compatibilitate

Activat de nivelul de compatibilitate

Notă Setarea nr. 3 este recomandată pentru clienții care fac upgrade nou la SQL Server 2016. Pentru versiuni majore după SQL Server 2016, Microsoft intenționează să continue să utilizeze acest model de întreținere pentru remedieri rapide Optimizer. În mod implicit sau în fiecare lansare, orice semnalizator de urmărire 4199 remedieri rapide din versiunea anterioară va fi activat în următorul nivel de compatibilitate. Acest lucru înseamnă că starea recomandată pentru clienți după ce migrează la cel mai recent nivel de compatibilitate va fi să aibă trasați semnalizatorul 4199 dezactivat. Remedieri rapide ulterioare ar utiliza Trace Flag 4199 pentru a activa remedieri pentru clienții care trebuie să activeze acele remedieri rapide specifice într-o aplicație. Clienții sunt sfătuiți să dezactiveze semnalizatorul de urmărire 4199 după ce o aplicație este îmbunătățită la cel mai recent nivel de compatibilitate, pentru a evita ca modificările viitoare ale Optimizatoare să fie activate în mod neașteptat pe o aplicație. Că upgrade-ul la cel mai recent nivel de compatibilitate și eliminarea semnalizării de urmărire 4199 încă activează toate remedierile efectuate de un volum de lucru înainte de upgrade, dar nu și de remedieri noi.

Notă În timp ce multe remedieri rapide optimizate sunt activate sub Trace Flag 4199, unele utilizează alte semnalizări de urmărire. Semnalizatorul de urmărire 4199 a urmărit în mod istoric semnalizările de urmărire care sunt aplicabile pe scară largă și susceptibile de a deveni activate implicit într-o lansare viitoare. Semnalizările de urmărire alternativă sunt utilizate în remedieri rapide în care condițiile sunt foarte specifice pentru doar câțiva clienți, unde remedierea poate provoca regresii de performanță în alte tipuri de aplicații sau în care funcționalitatea internă poate vedea modificările înainte de a fi gata să devină activată pentru toată lumea. Microsoft va continua să utilizeze alte semnalizări de urmărire după cum este necesar pentru a face service produsului. Notă Acest articol se concentrează pe modelul pentru eliberarea de remedieri rapide 4199 de urmărire la cel mai recent nivel de compatibilitate al celui mai recent produs. (La momentul publicării, acesta este SQL Server 2016.) Remedieri rapide pentru optimizare pot fi lansate pe versiunile mai vechi ale pieței de SQL Server sau pe niveluri de compatibilitate inferioare (120 sau anterior) din SQL Server 2016. Microsoft va evalua fiecare caz și va determina dacă să utilizeze Trace Flag 4199 sau alt semnalizator de urmărire. Deoarece modificările de remedieri non-remediere sunt, de asemenea, activate atunci când o mutare este efectuată la un nivel de compatibilitate mai târziu, nu există nicio promisiune specifică că nicio modificare de plan nu va avea loc în timpul unui upgrade (cu sau fără semnalizatorul de urmărire 4199). Clienții trebuie să testeze întotdeauna modificările la nivelul de compatibilitate cu atenție pentru aplicațiile de producție și ar trebui să utilizeze tehnologii de atenuare, cum ar fi depozitul de interogări, dacă există o problemă de performanță asociată planului-alegere. Pentru referință, următorul tabel listează semnalizările de urmărire care au fost utilizate pentru remedieri rapide pentru procesoare de interogare înainte de introducerea semnalizatorului de urmărire 4199.

Articolul din baza de cunoștințe Microsoft

Semnalizator de urmărire

318530

4101

940128

4102

919905

4103

920346

4104

920347

4105

922438

4106

923849

4107

926024

4108

926773

4109

933724

4110

934065

4111

946793

4115

950880

4116

948445

4117

942659

4119

953948

4120

942444

4121

946020

4122

948248

4124

949854

4125

959013

4126

953569

4127

955694 957872

4128

958547

4129

956686

4131

958006

4133

960770

4135*

SQL Server 2005

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 6 pentru SQL Server 2005 Service Pack 3. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

974648 Pachetul de actualizare cumulativă 6 pentru SQL Server 2005 Service Pack 3Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2005 fix release. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:

960598 SQL Server 2005 construiește care au fost lansate după ce s-a lansat SQL Server 2005 Service Pack 3Sunt create remedieri rapide Microsoft SQL Server 2005 pentru anumite pachete de servicii SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2005 Service Pack 3 la o instalare de SQL Server 2005 Service Pack 3. În mod implicit, orice remediere rapidă furnizată într-un pachet de servicii SQL Server este inclusă în următorul pachet de servicii SQL Server.

SQL Server 2008

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 7. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

973601 Pachetul de actualizare cumulativă 7 pentru SQL Server 2008Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 fix release. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:

956909 SQL Server 2008 construiește care au fost lansate după ce s-a lansat SQL Server 2008

SQL Server 2008 SP1

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 7 pentru SQL Server 2008 Service Pack 1. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

979065 Pachetul de actualizare cumulativă 7 pentru SQL Server 2008 Service Pack 1Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 fix release. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:

970365 SQL Server 2008 construiește care au fost lansate după ce s-a lansat SQL Server 2008 Service Pack 1Sunt create remedieri rapide Microsoft SQL Server 2008 pentru anumite pachete de servicii SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2008 Service Pack 1 la o instalare de SQL Server 2008 Service Pack 1. În mod implicit, orice remediere rapidă furnizată într-un pachet de servicii SQL Server este inclusă în următorul pachet de servicii SQL Server.

SQL Server 2008 R2

În versiunea lansată de SQL Server 2008 R2, semnalizatorul de urmărire 4135 a fost omis din greșeală din lista de semnalizări de urmărire care pot fi controlate de-T4199. Cu toate acestea, această problemă a fost remediată în actualizarea cumulativă 1 pentru SQL Server 2008 R2. Așadar, pentru această compilare și pentru edițiile acceptate SQL Server 2005 și SQL Server 2008,-T4199 va fi suficient pentru a activa aceasta și alte semnalizări de urmărire listate în acest articol.

SQL Server 2012 și versiuni mai recente

Semnalizatorul de urmărire 4199 este inclus în versiunile lansate de SQL Server 2012 și versiuni mai recente.

Cum se activează semnalizatorul de urmărire 4199

Puteți să activați Trace Flag 4199 la pornire sau într-o sesiune de utilizator. Acest semnalizator de urmărire are un efect la nivel global sau la nivel de sesiune. Pentru a activa semnalizatorul de urmărire 4199, utilizați comanda DBCC TRACEON sau utilizați -T 4199 ca parametru de pornire. Dacă se utilizează DBCC TRACEON\TRACEOFF , acest lucru nu regenerează un nou plan Cached pentru procedurile stocate. Planurile pot fi în cache care au fost create fără semnalizarea de urmărire. Pentru informații detaliate despre cum să activați sau să dezactivați semnalizările de urmărire și explicații pentru semnalizările de urmărire globale și la nivel de sesiune, consultați următoarele subiecte în SQL Server Books Online:

Referințe

Pentru mai multe informații despre schema de denumire pentru actualizările SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

822499 Schemă nouă de denumire pentru pachetele de actualizare software Microsoft SQL Server Pentru mai multe informații despre terminologia actualizării software-ului, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

824684 Descrierea terminologiei standard care este utilizată pentru a descrie actualizările de software Microsoft

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.

×