Applies ToMicrosoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Standard X64 Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Workgroup Edition SQL Server 2008 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

ÚVOD

Verze aplikace Microsoft SQL Server novější než SQL Server 2000 Service Pack 3 (SP3) doručují většinu oprav hotfix do optimalizátoru dotazů ve výchozím stavu, aby stávající produkční zákazníci neviděli očekávané změny plánu, které by mohly způsobit regresi výkonu. Každá oprava hotfix byla nejdřív doručena pod samostatným příznakem trasování. Později se tento postup změnil tak, aby většina příznaků byla sloučena pod jedním příznakem sledování (4199). Tento nový postup byl zahájen ve více verzích počínaje následujícími aktualizacemi:

  • SQL Server 2005 Service Pack 3 (SP3) kumulativní aktualizace 6

  • SQL Server 2008 Service Pack 1 (SP1) kumulativní aktualizace 7

  • SQL Server 2008 R2 (RTM)

Příznak trasování 4199 byl použit ke shromažďování oprav hotfix, které se mají ve výchozím nastavení v budoucí verzi zachycovat, zatímco jiné příznaky trasování se používaly v situacích, kdy se oprava ve výchozím nastavení v aktuálním formuláři nespouštěla. Počínaje SQL Server 2016 RTM se použije nastavení COMPATIBILITY_LEVEL databáze povolit ve výchozím nastavení opravy hotfix související s příznakem trasování 4199. Tento článek popisuje mechanismy a zásady, jak budou opravy hotfix ovlivňující plán doručovány pro SQL Server 2016 a novějších verzích.

Další informace

V SQL Server 2016 se v databázi COMPATIBILITY_LEVEL 130 povolí opravy hotfix příznaku trasování 4199 provedené v předchozích verzích SQL Server bez povoleného příznaku trasování 4199. Příznak trasování 4199 se použije k vydání jakýchkoli budoucích oprav SQL Server 2016 pro databáze pomocí úrovně kompatibility 130. Vzhledem k tomu, že příznak sledování 4199 se doporučuje jenom pro zákazníky, kteří vidí určité problémy s výkonem, doporučujeme zákazníkům odebrat příznak trasování 4199 po migraci databází na nejnovější úroveň kompatibility, protože příznak trasování 4199 se znovu použije pro budoucí opravy, které se nemusí vztahovat na vaši aplikaci a mohly by způsobit neočekávané změny výkonu plánu v produkčním systému. To znamená, že pro každou úroveň kompatibility podporovanou v dané verzi produktu jsou povolené různé opravy hotfix 4199 s příznakem trasování. Nejnovější úroveň kompatibility už umožňuje všechny předchozí opravy pod příznakem trasování 4199. To znamená, že upgrade databáze na nejnovější úroveň kompatibility a odebrání příznaku trasování 4199 stále umožňuje všechny opravy, které zatížení před upgradem databáze využívá, ale ne nové opravy. Pokud se zákazníkům později vyskytnou problémy s výkonem dotazů, experimentujte s povolením možnosti s rozsahem databáze QUERY_OPTIMIZER_HOTFIXES nebo nápovědu k dotazu ENABLE_QUERY_OPTIMIZER_HOTFIXES v testovacím prostředí a zjistěte, jestli jsou problémy vyřešené. Přečtěte si dokumentaci k QUERY_OPTIMIZER_HOTFIXES

Poznámka Ve výchozím nastavení databáze vytvořené v SQL Server 2016 používají úroveň kompatibility 130 a mají už povolenou novou logiku optimalizátoru.Hlavní výhodou tohoto modelu je snížení rizik pro produkční systémy během procesu upgradu. Tento přístup odděluje instalaci nové hlavní verze SQL Server od automatického povolení všech nových změn procesoru dotazů. Vzhledem k tomu, že hlavní upgrady verzí mění formát souboru a nejsou reverzibilní, je vhodné použít nastavení COMPATIBILITY_LEVEL, protože to umožňuje zákazníkovi rychle snížit výkon, pokud se během upgradu nastane neočekávaný problém s výkonem plánu. Pokud zákazník najde neočekávanou změnu plánu, která blokuje upgrade aplikace, může situaci zmírnit použitím vhodné nápovědy k plánu pomocí Úložiště dotazů k vynucení předchozího plánu nebo může situaci zmírnit kontaktováním zákaznické podpory microsoftu, která vám pomůže s řešením nebo opravou hotfix. Když se všechny problémy zkrátí, upgrade může pokračovat. Zákazníci by měli tuto funkci integrovat do plánování upgradu SQL Server 2016.Následující tabulka vysvětluje model, jak bude příznak trasování 4199 fungovat od SQL Server 2016.

Nastavení

SQL kompatibility

Příznak trasování 4199

Opravy hotfix optimalizátoru před SQL Server 2016 RTM

Opravy hotfix optimalizátoru po SQL Server RTM 2016

1.

120

Zakázáno

Zakázáno

Zakázáno

2.

120

Povoleno

Povoleno

Zakázáno

3.

130

Zakázáno

Povoleno na úrovni kompatibility

Zakázáno

4.

130

Povoleno

Povoleno na úrovni kompatibility

Povoleno na úrovni kompatibility

Poznámka: Nastavení č. 3 se doporučuje pro zákazníky, kteří nově upgradují na SQL Server 2016.U hlavních verzí po SQL Server 2016 plánuje Microsoft pokračovat v používání tohoto modelu údržby pro opravy hotfix optimalizátoru. Ve výchozím nastavení nebo v každé verzi budou všechny opravy hotfix 4199 s příznakem trasování z předchozí verze povolené na další úrovni kompatibility. To znamená, že doporučený stav pro zákazníky po migraci na nejnovější úroveň kompatibility bude mít příznak trasování 4199 zakázaný. Pozdější opravy hotfix používají příznak trasování 4199 k povolení oprav pro zákazníky, kteří musí povolit tyto konkrétní opravy hotfix v aplikaci. Zákazníkům se doporučuje zakázat příznak trasování 4199 po upgradu aplikace na nejnovější úroveň kompatibility, aby se zabránilo neočekávaným neočekávaným změnám optimalizátoru v budoucnosti. Tento upgrade na nejnovější úroveň kompatibility a odebrání příznaku trasování 4199 stále umožňuje všechny opravy, které před upgradem využívá pracovní vytížení, ale ne nové opravy.

Poznámka I když je v příznaku trasování 4199 povolené mnoho oprav hotfix optimalizátoru, některé používají jiné příznaky trasování. Příznak trasování 4199 historicky zahrnuté příznaky trasování, které jsou široce použitelné a ve výchozím nastavení se stávají povolenými v budoucí verzi. Alternativní příznaky trasování se používají v opravách hotfix, kde jsou podmínky velmi specifické jenom pro několik zákazníků, kde oprava může způsobit regrese výkonu v jiných typech aplikací nebo kdy interní funkce vidíte změny dřív, než bude připravená povolit pro všechny uživatele. Microsoft bude dál používat další příznaky trasování podle potřeby k servisu produktu.Poznámka: Tento článek se zaměřuje na model vydávání oprav hotfix s příznakem trasování 4199 na nejnovější úrovni kompatibility nejnovějšího produktu. (V době publikování je toto SQL Server 2016.) Opravy hotfix optimalizátoru mohou být vydávány ve starších verzích SQL Server nebo na nižších úrovních kompatibility (120 nebo starších) SQL Server 2016. Microsoft vyhodnotí každý případ a určí, jestli se má použít příznak trasování 4199 nebo jiný příznak trasování. Vzhledem k tomu, že změny bez opravy hotfix jsou povolené i při přechodu na pozdější úroveň kompatibility, neexistuje žádný konkrétní příslib, že během upgradu nedojde k žádným změnám plánu (s příznakem trasování 4199 nebo bez něj). Zákazníci by měli změny úrovně kompatibility vždy pečlivě testovat u produkčních aplikací a měli by používat technologie zmírňování rizik, jako je úložiště dotazů, pokud existuje problém s výkonem souvisejícím s volbou plánu.Před zavedením příznaku trasování 4199 byly pro opravy hotfix procesoru dotazů použity následující příznaky trasování:

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 2012 a novějších verzích

Příznak trasování 4199 je zahrnutý ve verzích SQL Server 2012 a novějších verzích.

Jak povolit příznak trasování 4199

Příznak trasování 4199 můžete povolit při spuštění nebo v relaci uživatele. Tento příznak trasování má vliv na globální úrovni nebo na úrovni relace. Pokud chcete povolit příznak trasování 4199, použijte příkaz DBCC TRACEON nebo jako spouštěcí parametr použijte –T 4199.Pokud se použije funkce DBCC TRACEON\TRACEOFF, nevygeneruje se nový plán uložený v mezipaměti pro uložené procedury. Plány mohly být v mezipaměti vytvořené bez příznaku trasování.Podrobné informace o tom, jak povolit nebo zakázat příznaky trasování a vysvětlení globálních příznaků a příznaků sledování na úrovni relace, najdete v následujících tématech v SQL Server Books Online:

Odkazy

Další informace o schématu pojmenovávání SQL Server aktualizacích získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

822499 Nové schéma pojmenovávání Microsoft SQL Server aktualizací softwaru Další informace o terminologii aktualizací softwaru najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

824684 Popis standardní terminologie používané k popisu aktualizací softwaru společnosti Microsoft

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.