KB974006-SQL Server Query Optimizer – rýchla oprava príznak 4199 servisný model

ÚVOD

Verzie servera Microsoft SQL Server, ktoré nie sú k balíku SQL Server 2000 Service Pack 3 (SP3), vydali väčšina rýchlych opráv pre optimalizáciu dotazov v stave off-by-default, aby sa zabránilo existujúcim produkčným zákazníkom pri zobrazovaní očakávaných zmien v plánoch, ktoré by mohli spôsobiť regresie výkonu. Každá rýchla oprava bola najprv doručená pod samostatný príznak sledovania. Táto prax sa neskôr zmenila tak, že väčšina príznakov sa zlúčila pod jedným príznakom sledovania (4199). Táto nová prax sa začala v rámci viacerých verzií, počnúc týmito aktualizáciami:

  • Kumulatívna aktualizácia balíka SQL Server 2005 Service Pack 3 (SP3) 6

  • Kumulatívna aktualizácia balíka SQL Server 2008 Service Pack 1 (SP1) 7

  • SQL Server 2008 R2 (RTM)

Sledovanie príznaku 4199 bol použitý na zhromažďovanie rýchlych opráv, ktoré boli určené na to, aby sa v budúcom vydaní zobrazovali ako predvolené, zatiaľ čo iné príznaky sledovania sa použili pre situácie, v ktorých sa oprava neplánovala v aktuálnom formulári ako predvolená. Počnúc SQL Server 2016 RTM sa použije nastavenie COMPATIBILITY_LEVEL databázy, aby sa na základe predvoleného nastavenia povolili rýchle opravy súvisiace s príznakom sledovania 4199. V tomto článku sa popisuje mechanika a politika, ako sa budú pre SQL Server 2016 a novšie verzie doručiť plány ovplyvňujúce rýchle opravy.

Ďalšie informácie

V SQL Server 2016, stopových vlajkou 4199 rýchlych opráv, ktoré sú vyrobené na predchádzajúce vydania SQL servera sa stanú povolené v rámci databázy COMPATIBILITY_LEVEL 130 bez sledovania vlajky 4199 povolené. Sledovanie príznaku 4199 sa použije na uvoľnenie všetkých budúcich opráv SQL servera 2016 pre databázy pomocou úrovne kompatibility 130. Keďže príznak sledovania 4199 sa odporúča len pre zákazníkov, ktorí vidia konkrétne problémy s výkonom, zákazníci sa odporúča odstrániť príznak sledovania 4199 po migrácii svojich databáz na najnovšiu úroveň kompatibility, pretože príznak sledovania 4199 sa opätovne použije na budúce opravy, ktoré sa nemusia vzťahovať na vašu aplikáciu, a môžu spôsobovať neočakávané zmeny výkonu plánu vo výrobnom systéme. To znamená, že pre každú úroveň kompatibility, ktorá je podporovaná v danom vydaní produktu, sú povolené rôzne rýchle opravy príznaku sledovania 4199. Najnovšia úroveň kompatibility už povoľuje všetky predchádzajúce opravy v časti sledovanie príznaku 4199. To znamená, že inovácia databázy na najnovšiu úroveň kompatibility a odstránenie príznaku sledovania 4199 stále umožňuje všetky opravy, ktoré záťaž vyťažila pred inováciou databázy, len nie nové opravy. Ak sa neskôr zákazníci vyskytnú problémy s výkonom dotazov, experimentovať s povolením možnosti rozsah databázy QUERY_OPTIMIZER_HOTFIXES alebo pomôcka na zadanie ENABLE_QUERY_OPTIMIZER_HOTFIXES v testovacom prostredí na určenie, či sa problémy vyriešia. Pozrite si dokumentáciu o QUERY_OPTIMIZER_HOTFIXES

Poznámka Databázy vytvorené v programe SQL Server 2016 sa predvolene používajú na úrovni kompatibility 130 a majú už zapnutú novú logiku pre optimalizáciu. Hlavnou výhodou tohto modelu je zníženie rizika produkčných systémov počas procesu inovácie. Tento prístup oddeľuje inštaláciu novej hlavnej verzie servera SQL Server z automatického zapnutia všetkých nových zmien procesora dotazov. Keďže inovácia hlavnej verzie mení formát súboru a nie sú reverzibilné, je vhodné použiť nastavenie COMPATIBILITY_LEVEL, pretože to umožňuje zákazníkovi rýchlo znížiť prechod na staršiu verziu, ak sa pri inovácii zistí neočakávaný problém s výkonom plánu. Ak zákazník zistí neočakávanú zmenu plánu, ktorá blokuje inováciu aplikácie, zákazník môže túto situáciu zjednodušiť použitím vhodného náznaku plánu pomocou obchodu s dotazmi na vynútenie predchádzajúceho plánu alebo môže uľahčiť situáciu kontaktovaním oddelenia podpory pre zákazníkov spoločnosti Microsoft, aby vám pomohol problém poskytnúť alternatívne riešenie alebo rýchlu opravu. Keď sa zmenšujú všetky problémy, inovácia môže pokračovať. Zákazníci by mali túto možnosť integrovať do svojho plánovania inovácie pre SQL Server 2016. V nasledujúcej tabuľke je vysvetlené, ako bude model sledovania vlajky 4199 fungovať Počnúc SQL Server 2016.

Nastavenie

Úroveň kompatibility SQL

Príznak sledovania 4199

Optimalizácia rýchlych opráv pred SQL Server 2016 RTM

Optimalizácia rýchlych opráv po SQL Server 2016 RTM

1.

120

Vypnúť

Vypnuté

Vypnuté

2.

120

Na

Povolené

Vypnuté

3.

130

Vypnúť

Povolené na úrovni kompatibility

Vypnuté

4.

130

Na

Povolené na úrovni kompatibility

Povolené na úrovni kompatibility

Poznámka: Nastavenie č. 3 sa odporúča pre zákazníkov, ktorí sú novo inovovaní na server SQL Server 2016. Pri významných vydaniach za SQL Server 2016 spoločnosť Microsoft plánuje naďalej používať tento model servisu na optimalizáciu rýchlych opráv. Na základe predvoleného nastavenia alebo pri každom vydaní sa v nasledujúcej úrovni kompatibility zapne akýkoľvek príznak sledovania 4199 rýchlych opráv z predchádzajúceho vydania. To znamená, že odporúčaný stav pre zákazníkov po migrácii na najnovšiu úroveň kompatibility bude mať príznak sledovania 4199 vypnuté. Neskôr rýchlych opráv by sa pomocou sledovania príznaku 4199 povoliť opravy pre zákazníkov, ktorí majú povolenie týchto konkrétnych rýchlych opráv v aplikácii. Zákazníci sa odporúča vypnúť príznak sledovania 4199 po inovácii aplikácie na najnovšiu úroveň kompatibility, aby sa predišlo neočakávaným zmenám v budúcnosti, ktoré sú v žiadosti neočakávane zapnuté. Inovácia na najnovšiu úroveň kompatibility a odstránenie príznaku sledovania 4199 stále umožňuje všetky opravy, ktoré záťaž vyťažila pred inováciou, len nie nové opravy.

Poznámka Zatiaľ čo mnoho optimalizáciu rýchlych opráv sú povolené v časti príznak sledovania 4199, niektoré používajú iné príznaky sledovania. Príznak sledovania 4199 historicky pokryté príznaky sledovania, ktoré sú všeobecne použiteľné a pravdepodobne sa v budúcom vydaní predvolene zapnú. Alternatívne príznaky sledovania sa používajú v rýchlych opráv, pričom podmienky sú veľmi špecifické len pre niektorých zákazníkov, pričom oprava môže spôsobiť regresie výkonu v iných typoch aplikácií alebo ak sa v interných funkciách môžu zobraziť zmeny pred tým, ako budú môcť všetci povoliť. Spoločnosť Microsoft bude naďalej používať ďalšie príznaky sledovania, ktoré sú potrebné na servis produktu. Poznámka Tento článok sa zameriava na model na uvoľňovanie sledovania príznaku 4199 rýchlych opráv na najnovšej úrovni kompatibility najnovšieho produktu. (V čase publikovania je to SQL Server 2016.) Rýchlych opráv pre optimalizáciu môže byť vydaný na starších verziách programu SQL Server alebo na nižšej úrovni kompatibility (120 alebo Prior) SQL servera 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 bez opravy sú povolené aj vtedy, keď sa presun vykoná na neskoršiu úroveň kompatibility, neexistuje žiadny konkrétny prísľub, že počas inovácie sa nevyskytnú žiadne zmeny plánu (s príznakom sledovania 4199). Zákazníci by mali vždy testovať zmeny na úrovni kompatibility pre aplikácie výroby a mali by používať technológie na zmiernenie problémov, ako napríklad ukladací priestor dotazov, ak sa vyskytol problém s výkonom pri výbere plánu. V nasledujúcej tabuľke sú uvedené príznaky sledovania, ktoré boli použité pre rýchle opravy procesora dotazov pred zavedením príznaku sledovania 4199.

Článok databázy Microsoft Knowledge Base

Príznak sledovania

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

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 6 pre SQL Server 2005 Service Pack 3. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

974648 Kumulatívna aktualizácia balíka 6 pre SQL Server 2005 Service Pack 3Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2005 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

960598 Zostavy SQL servera 2005, ktoré boli vydané po vydaní SQL servera 2005 Service Pack 3Microsoft SQL Server 2005 rýchlych opráv sú vytvorené pre konkrétne SQL Server Service Pack. Ak chcete nainštalovať SQL Server 2005 Service Pack 3, musíte použiť rýchlu opravu SQL servera 2005 Service Pack 3. Na základe predvoleného nastavenia je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, zahrnutá v ďalšej službe SQL Server Service Pack.

SQL Server 2008

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 7. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2008 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

973601 Kumulatívna aktualizácia balíka 7 pre SQL Server 2008Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

956909 Zostavy SQL servera 2008, ktoré boli vydané po vydaní SQL servera 2008

SQL Server 2008 SP1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 7 pre SQL Server 2008 Service Pack 1. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

979065 Kumulatívna aktualizácia balíka 7 pre SQL Server 2008 Service Pack 1Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

970365 Zostavy SQL servera 2008, ktoré boli vydané po vydaní SQL servera 2008 Service Pack 1Microsoft SQL Server 2008 rýchlych opráv sú vytvorené pre konkrétne SQL Server Service Pack. Ak chcete nainštalovať SQL Server 2008 Service Pack 1, musíte použiť rýchlu opravu SQL servera 2008 Service Pack 1. Na základe predvoleného nastavenia je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, zahrnutá v ďalšej službe SQL Server Service Pack.

SQL Server 2008 R2

V vydanej verzii SQL servera 2008 R2 sa príznak sledovania 4135 neúmyselne vynechal zo zoznamu príznakov sledovania, ktoré možno ovládať pomocou funkcie-T4199. Tento postup bol však vyriešený v kumulatívnej aktualizácii 1 pre SQL Server 2008 R2. Preto pre túto zostavu a pre SQL Server 2005 a SQL Server 2008 podporované verzie – T4199 bude stačiť na povolenie tohto a ďalších príznakov sledovania, ktoré sú uvedené v tomto článku.

SQL Server 2012 a novšie verzie

Stopových vlajkou 4199 je súčasťou vydaní verzie SQL servera 2012 a novších verziách.

Zapnutie sledovania príznaku 4199

Môžete zapnúť príznak sledovania 4199 pri spustení alebo v relácii používateľa. Tento príznak sledovania má buď globálnu úroveň alebo efekt na úrovni relácie. Ak chcete zapnúť príznak sledovania 4199, použite príkaz DBCC TRACEON alebo použite – T 4199 ako spúšťací parameter. Ak sa použije príkaz DBCC TRACEON\TRACEOFF , negeneruje sa nový plán ukladania do 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 zapnúť alebo vypnúť príznaky sledovania a vysvetlenia globálnych a sledovacích príznakov na úrovni relácií, nájdete v nasledujúcich témach v téme SQL Server Books Online:

Odkazy

Ďalšie informácie o schéme pomenovania pre aktualizácie SQL servera nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

822499 Nová schéma pomenovania pre balíky aktualizácií softvéru servera Microsoft SQL Server Ďalšie informácie o terminológii aktualizácie softvéru nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

824684 Popis štandardnej terminológie, ktorá sa používa na popis aktualizácií softvéru od spoločnosti Microsoft

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Považujete poskytnuté informácie za užitočné?

Ďakujem za vaše pripomienky!

×