Rezumat
Această actualizare introduce un nou argument sugestie pentru interogare, Utilizați hint, care vă permite să conduceți Optimizatorul de interogare fără acreditări ridicate sau fără să fiți membru al rolului serverului de administrator. Sintaxa acestui nou indiciu de interogare seamănă cu următorul:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Această actualizare introduce, de asemenea, următoarele opțiuni de sugestie care pot fi utilizate cu argumentul utilizare sugestie .
Opțiune |
Semnalizator de urmărire echivalent |
Descriere |
Se aplică la |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Provoacă SQL Server pentru a genera un plan de interogare utilizând ipoteza de reținere simplă în loc de ipoteza implicită de bază pentru asocieri, sub Optimizatorul de interogare Modelul de estimare a cardinalității SQL Server 2014 (12. x) sau mai nou. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Provoacă SQL Server pentru a genera un plan utilizând selectivitate minimă atunci când estimați și Predicați pentru filtre pentru a ține cont de corelare. Acest nume de sugestie este paralel cu Trace Flag 4137 atunci când este utilizat cu modelul de estimare cardinality de SQL server 2012 (11. x) și versiuni anterioare, și are efect similar atunci când Trace Flag 9471 este utilizat cu modelul de estimare cardinality de SQL Server 2014 (12. x) sau o versiune mai recentă. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Dezactivează asocierile adaptabile la modul lot. |
începând cu SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Dezactivează modul de acordare a memoriei din modul de lot. |
începând cu SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Dezactivează compilarea variabilă a tabelului amânată. |
începând cu SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Dezactivează executarea Interleaved pentru funcțiile de tabel cu mai multe declarații. |
începând cu SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Instruiește procesorul de interogare să nu utilizeze o operațiune de sortare (sortarea lotului) pentru asocierile de buclă imbricată optimizate atunci când generează un plan de interogare. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Provoacă SQL Server pentru a genera un plan care nu utilizează modificările de obiectiv de rând cu interogări care conțin aceste cuvinte cheie:
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Instruiește Optimizatorul de interogare să utilizeze distribuția medie de date în timp ce compilează o interogare cu unul sau mai mulți parametri. Această instrucțiune face ca planul de interogare să fie independent de valoarea parametrului care a fost utilizată pentru prima dată când s-a compilat interogarea. Utilizați acest indiciu pentru a anula setarea de configurare a domeniului bazei de date PARAMETER_SNIFFING = dezactivat. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Dezactivează feedbackul privind acordarea memoriei din modul de rând. |
începând cu SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Dezactivează inlinierea UDF scalară. |
începând cu SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Dezactivează execuția modului de lot. |
începând cu SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Activează statisticile rapide generate automat (modificarea histogramei) pentru orice coloană de indexare de vârf pentru care este necesară estimarea cardinalității. Histograma utilizată pentru estimarea cardinalității va fi ajustată la timpul de compilare a interogării pentru a ține cont de valoarea maximă sau minimă efectivă a acestei coloane. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Activează remedierile rapide ale interogărilor (modificările lansate în actualizările cumulative SQL Server și pachetele Service Pack). Utilizați acest indiciu pentru a anula Setarea de configurare a bazelor de date QUERY_OPTIMIZER_HOTFIXES = activat. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Obligă Optimizatorul de interogare să utilizeze Modelul de estimare a cardinalității care corespunde nivelului de compatibilitate al bazei de date curente. Utilizați acest indiciu pentru a anula Setarea de configurare a bazei de date LEGACY_CARDINALITY_ESTIMATION = activat. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Obligă Optimizatorul de interogare să utilizeze Modelul de estimare a cardinalității SQL Server 2012 (11. x) și versiunile anterioare. Utilizați acest indiciu pentru a anula setarea de configurare a domeniului bazei de date LEGACY_CARDINALITY_ESTIMATION = activat. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Forțează comportamentul de optimizare a interogărilor la un nivel de interogare. Acest comportament se întâmplă ca și cum interogarea a fost compilată cu nivelul de compatibilitate al bazei de date n, unde n este un nivel de compatibilitate a bazei de date acceptate. Consultațisys.dm_exec_valid_use_hints pentru o listă de valori acceptate în prezent pentru n. |
pornirea în SQL Server 2017 (14. x) CU10 |
Pentru mai multe informații, consultați sugestii (Transact-SQL)-Query.
Mai multe informații
Această actualizare este inclusă în pachetul Service Pack 1 pentru SQL Server 2016.
Fiecare compilare nouă pentru SQL Server 2016 conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în compilarea anterioară. Vă recomandăm să instalați cea mai recentă versiune pentru SQL Server 2016.
Scenariile în care comportamentul SQL Server Query Optimizer (QO) trebuie să fie sugerate sunt destul de comune și, în mod tradițional, sunt abordate utilizând mai multe semnalizări de urmărire (documentate și nedocumentate). Totuși, când semnalizările de urmărire sunt setate la nivel global, acestea pot avea un efect advers asupra altor încărcări de lucru. În plus, activarea lor per sesiune nu este practică cu aplicațiile existente și activarea lor per interogare cu opțiunea QUERYTRACEON necesită apartenență la rolul de server fix de administrator. (Deși puteți rezolva acest comportament utilizând un ghid de plan sau o procedură stocată, acreditările ridicate sunt încă necesare.) Semnalizările de urmărire sunt utilizate pentru a seta temporar anumite caracteristici de server sau pentru a opri un anumit comportament, poate fi dificil să le gestionați și să le înțelegeți. Pentru informații despre semnalizările de urmărire, consultați subiectul urmărire steaguri (Transact-SQL) pe site-ul Web Microsoft Developer Network (MSDN).
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.