ÚVOD
Verzie služieb Microsoft SQL Server novšie ako SQL Server 2000 Service Pack 3 (SP3) dodávali väčšinu rýchlych opráv do optimalizátora dotazov v stave mimo predvoleného nastavenia, aby sa existujúcim produkčným zákazníkom zabránilo zobraziť očakávané zmeny v pláne, ktoré by mohli spôsobiť regresiu výkonu. Spočiatku sa všetky rýchle opravy doručovali pod samostatným príznakom sledovania. Neskôr sa tento postup zmenil tak, aby väčšina príznakov bola skombinovaná pod jedným príznakom sledovania (4199). Tento nový postup bol iniciovaný vo viacerých verziách počnúc nasledujúcimi aktualizáciami:
-
SQL Server Kumulatívna aktualizácia 6 pre SQL Server Service Pack 3 (SP3) 2005
-
SQL Server balíka Service Pack 1 (SP1) z 2008 – Kumulatívna aktualizácia 7
-
SQL Server 2008 R2 (RTM)
Príznak sledovania 4199 sa používal na zhromažďovanie rýchlych opráv, ktoré sa v budúcom vydaní predvolene chceli stať, zatiaľ čo iné príznaky sledovania sa používali v situáciách, kedy oprava nie je určená na to, aby sa v súčasnosti používala predvolene. Počnúc SQL Server RTM 2016 sa budú nastavenia databázy COMPATIBILITY_LEVEL predvolene používať s príznakom sledovania 4199, ktoré sa týka rýchlych opráv. Tento článok popisuje spôsob a spôsob, akým sa rýchle opravy ovplyvňujúce plán budú doručovať pre SQL Server 2016 a novšie verzie.
Ďalšie informácie
V balíku SQL Server 2016 sa rýchle opravy príznakom 4199, ktoré boli vykonané v predchádzajúcich vydaniach balíka SQL Server, stanú v rámci databázy COMPATIBILITY_LEVEL 130 povolené bez povoleného príznaku sledovania 4199. Príznak sledovania 4199 sa použije na vydanie všetkých budúcich opráv SQL Server z roku 2016 pre databázy pomocou úrovne kompatibility 130. Keďže príznak sledovania 4199 sa odporúča iba pre zákazníkov, ktorí majú špecifické problémy s výkonom, zákazníkom odporúčame odstrániť príznak sledovania 4199 po migrácii databáz na najnovšiu úroveň kompatibility, pretože príznak sledovania 4199 sa znova použije na budúce opravy, ktoré sa nemusia vzťahovať na vašu aplikáciu a môžu spôsobiť neočakávané zmeny v výkone plánu v systéme výroby. To znamená, že pre každú úroveň kompatibility podporovanej v danom vydaní produktu sú povolené rôzne rýchle opravy príznaku 4199. Najnovšia úroveň kompatibility už umožňuje všetky predchádzajúce opravy pod príznakom sledovania 4199. To znamená, že inovácia databázy na najnovšiu úroveň kompatibility a odstránenie príznaku sledovania 4199 umožní aj naďalej všetky opravy, ktoré vyťaženie s využitím pred inováciou databázy, iba nie nové opravy. Ak sa neskôr vyskytnú problémy s výkonom dotazu u zákazníkov, skúste experimentovať s povolením možnosti s rozsahom databázy QUERY_OPTIMIZER_HOTFIXES alebo tipom ENABLE_QUERY_OPTIMIZER_HOTFIXES dotazu v testovacom prostredí a zistite, či sa problémy vyriešili. Prečítajte si dokumentáciu o QUERY_OPTIMIZER_HOTFIXES.
Poznámka: V databázach vytvorených v balíku SQL Server 2016 sa predvolene používa úroveň kompatibility 130, ktorá už má povolenú novú logiku optimalizátora.
Hlavnou výhodou tohto modelu je, že počas procesu inovácie znižuje riziko pre výrobné systémy. Tento postup oddeľuje inštaláciu novej hlavnej verzie balíka SQL Server od automatického zapnutia všetkých nových zmien procesora dotazov. Keďže hlavné verzie zmenili formát súboru a nie sú možné vrátiť, je vhodné použiť nastavenie COMPATIBILITY_LEVEL, pretože to zákazníkovi umožní rýchly prechod na staršiu verziu v prípade, že sa počas inovácie vyskytne neočakávaný problém s výkonom plánu. Ak zákazník nájde neočakávanú zmenu plánu, ktorá blokuje inováciu aplikácie, zákazník môže túto situáciu uľahčiť použitím vhodného tipu plánu pomocou služby Query Store na vynútenie predchádzajúceho plánu alebo môže situáciu zjednodušiť kontaktním služby zákazníkom spoločnosti Microsoft, ktorá vám pomôže s týmto problémom a poskytne alternatívne riešenie alebo opravu rýchlej opravy. Ak sa všetky problémy zní ia, inovácia môže pokračovať. Zákazníci by mali túto možnosť integrovať do plánovania inovácie SQL Server verzie 2016. Nasledujúca tabuľka vysvetľuje model spôsobu, akým budú sledovanie príznaku 4199 fungovať od SQL Server 2016.
Nastavenie |
SQL úroveň kompatibility |
Trace flag 4199 |
Optimizer hotfixes before SQL Server 2016 RTM |
Rýchle opravy optimalizátora po SQL Server RTM 2016 |
---|---|---|---|---|
1. |
120 |
Vypnuté |
Zakázané |
Zakázané |
2. |
120 |
V |
Povolené |
Zakázané |
3. |
130 |
Vypnuté |
Povolené podľa úrovne kompatibility |
Zakázané |
4. |
130 |
V |
Povolené podľa úrovne kompatibility |
Povolené podľa úrovne kompatibility |
Poznámka: Nastavenie nie. 3 sa odporúča pre zákazníkov, ktorí práve inovujete na SQL Server 2016.
V prípade hlavných vydaní po SQL Server 2016 plánuje spoločnosť Microsoft naďalej používať tento model údržby pre rýchle opravy optimalizátora. Predvolene alebo v každom vydaní budú všetky rýchle opravy príznaku 4199 z predchádzajúceho vydania povolené v ďalšej úrovni kompatibility. Znamená to, že stav odporúčaný pre zákazníkov po migrácii na najnovšiu úroveň kompatibility bude vypnutý príznakom sledovania 4199. Neskôr sa pomocou príznaku sledovania 4199 zapnite opravy pre zákazníkov, ktorí musia povoliť tieto konkrétne rýchle opravy v aplikácii. Zákazníkom odporúčame vypnúť príznak sledovania 4199 po inovácii aplikácie na najnovšiu úroveň kompatibility, aby sa zabránilo neočakávaným budúcim zmenám optimalizátora v aplikácii neočakávane. Inovácia na najnovšiu úroveň kompatibility a odstránenie príznaku sledovania 4199 stále umožňuje všetky opravy, ktoré vyťaženie s využitím pred inováciou, iba nie nové opravy.Poznámka: Zatiaľ čo v príznaku sledovania 4199 sú povolené mnohé rýchle opravy optimalizátora, niektoré môžu používať iné príznaky sledovania. Príznak sledovania 4199 sa historicky vzťahuje na príznaky sledovania, ktoré sú bežne použiteľné a pravdepodobne budú predvolene povolené v budúcom vydaní. Alternatívne príznaky sledovania sa používajú v rýchlych opravách, kde sú podmienky veľmi špecifické len pre niekoľkých zákazníkov, kde oprava môže spôsobiť regresie výkonu v iných typoch aplikácií alebo vtedy, keď sa môžu v internej funkcii zobraziť zmeny predtým, ako je pripravená na povolenie všetkým. Spoločnosť Microsoft bude naďalej používať na servis produktu ďalšie príznaky sledovania.
Poznámka Tento článok sa zameriava na model vydaním opráv sledovania 4199 na najnovšiu úroveň kompatibility najnovšieho produktu. (V čase publikovania je to SQL Server 2016.) Rýchle opravy optimalizátora môžu byť vydané v starších verziách balíka SQL Server na trhu alebo na nižších úrovniach kompatibility (120 alebo starších) produktov SQL Server 2016. Spoločnosť Microsoft vyhodnotí každý prípad a určí, či sa má použiť príznak sledovania 4199 alebo iný príznak sledovania. Keďže zmeny, ktoré nie sú rýchlymi opravami, sú tiež povolené pri presune na novšiu úroveň kompatibility, neexistuje žiadny špecifický softvér, že počas inovácie (s príznakom sledovania 4199 alebo bez neho) sa nevyskytnú žiadne zmeny v pláne. Zákazníci by v prípade produkčných aplikácií mali vždy dôkladne testovať zmeny úrovne kompatibility a v prípade problému s výkonom súvisiacom s výberom plánu by mali používať technológie na obmedzenie rizík, napríklad funkciu Query Store. Na referenciu sa pred zavedením príznaku sledovania 4199 používali tieto príznaky sledovania pre rýchle opravy procesora dotazov:4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.
SQL Server verzie 2012 a novších
Príznak sledovania 4199 je súčasťou vydaní verzií balíka SQL Server 2012 a novších verzií.
Zapnutie príznaku sledovania 4199
Príznak sledovania 4199 môžete povoliť pri spustení alebo v relácii používateľa. Tento príznak sledovania má globálnu úroveň alebo efekt na úrovni relácie. Ak chcete povoliť príznak sledovania 4199, použite príkaz DBCC TRACEON alebo použite parameter –T 4199 ako spúšťací parameter.
Ak sa použije DBCC TRACEON\TRACEOFF, nevygeneruje sa nový plán vyrovnávacej pamäte pre uložené procedúry. Plány môžu byť vo vyrovnávacej pamäti, ktoré boli vytvorené bez príznaku sledovania. Podrobné informácie o tom, ako povoliť alebo zakázať príznaky sledovania a vysvetlenia globálnych príznakov a príznakov sledovania na úrovni relácie, nájdete v nasledujúcich témach v SQL Server Books Online:Odkazy
Ďalšie informácie o schéme pomenovania pre SQL Server nájdete po kliknutí na nasledujúce číslo článku, ktorý sa zobrazí vedomostnej databáze Microsoft Knowledge Base:
822499 Nová schéma pomenovania pre Microsoft SQL Server balíky na aktualizáciu softvéru Ďalšie informácie o terminológii aktualizácie softvéru získate po kliknutí na číslo tohto článku, ktorý sa zobrazí v databáze Microsoft Knowledge Base:
824684 Popis štandardnej terminológie, ktorá sa používa na popis aktualizácií softvéru od spoločnosti Microsoft