SQL Server Query Optimizer Hotfix Trace Flag 4199 Dienstmodell

Einführung

SQL Server 2000 Service Pack 3 (SP3) Hotfixes für den Abfrageoptimierer in einem Zustand deaktiviert standardmäßig geliefert, um vorhandene Produktion sehen zu verhindern, dass höhere Versionen von Microsoft SQL Server erwartet Änderungen, die Leistung Regressionen verursachen können. Zunächst wurde jeder unter einem separaten Ablaufverfolgungsflag übermittelt. Dadurch wurde später geändert, damit die meisten Flags unter einem einzigen Ablaufverfolgungsflag (4199) zusammengefasst wurden. Dieses neue Verfahren veranlasst über mehrere Versionen mit den folgenden Updates:
  • SQL Server 2005 Service Pack 3 (SP3) kumulative Update 6
  • Kumulatives Updatepaket 7 für SQL Server 2008 Service Pack 1 (SP1)
  • SQL Server 2008 R2 (RTM)
Ablaufverfolgungsflag 4199 wurde verwendet, um Updates zu sammeln, die auf Standardmäßig werden sollen in einer zukünftigen Version andere Ablaufverfolgungsflags für Situationen verwendet wurden ein Update wurde nicht bestimmt zu auf standardmäßig im aktuellen Formular. Beginnend mit SQL Server 2016 RTM wird die Datenbank COMPATIBILITY_LEVEL verwendete Enable Trace Flag 4199 bezogenen Hotfixes auf standardmäßig festgelegt. Dieser Artikel beschreibt die Mechanismen und Richtlinien wie Plan beeinflussen Hotfixes für SQL Server 2016 und höher geliefert werden.

Weitere Informationen

SQL Server 2016 werden Trace Flag 4199 Hotfixes, die mit früheren Versionen von SQL Server erfolgen unter Datenbank COMPATIBILITY_LEVEL 130 ohne Ablaufverfolgungsflag 4199 aktiviert. Ablaufverfolgungsflag 4199 verwendet zukünftigen SQL Server 2016 Hotfixes für Datenbanken mit 130 Kompatibilitätsgrad freizugeben. Da das Ablaufverfolgungsflag 4199 für Kunden, die spezielle Leistungsprobleme sehen empfohlen, geraten Kunden Ablaufverfolgungsflag 4199 Nachdem sie ihre Datenbanken auf das aktuelle Kompatibilität migrieren, weil Ablaufverfolgungsflag 4199 für zukünftige Updates verwendet, die gelten nicht für die Anwendung könnte unerwartete leistungsänderungen in einem Produktionssystem entfernen. Dies bedeutet, dass verschiedene Trace Flag 4199 Hotfixes für jede Kompatibilitätsgrad aktiviert sind, die in einer bestimmten Produktversion unterstützt.

Hinweis Datenbanken in SQL Server 2016 erstellt standardmäßig Kompatibilitätsgrad 130 verwenden und neue Optimizer Logik bereits aktiviert.

Der große Vorteil dieses Modells ist, dass Risiken für Produktionssysteme während des Upgrades verringert. Dieser Ansatz trennt die Installation einer neuen Version von SQL Server die automatische Aktivierung des gesamten neuen Abfrage Prozessor. Da Hauptversion Upgrades das Dateiformat ändern und nicht umkehrbar, ist es empfiehlt sich, die Einstellung COMPATIBILITY_LEVEL verwenden, da auf diese Weise können Kunden schnell heruntergestuft, wenn während der Aktualisierung ein unerwarteter Plan Leistungsproblem gefunden wird. Findet ein Kunde einen unerwarteten Plan, blockiert eine anwendungsaktualisierung ändern, kann die Situation durch Anwenden eines entsprechenden Plan-Hinweis mithilfe Abfrage laden den vorherigen Plan erzwungen vereinfachen, oder die Situation kann vom Microsoft-Kundendienst zu dem Problem eine Lösung oder einen Hotfix zu vereinfachen. Wenn alle Probleme vermindert werden, kann die Aktualisierung fort. Kunden sollten diese Funktion in ihrer Aktualisierung planen für SQL Server 2016 integrieren.

Die folgende Tabelle erläutert das Modell funktioniert Ablaufverfolgungsflag 4199 ab SQL Server 2016.

EinstellungSQL-KompatibilitätsgradAblaufverfolgungsflags 4199Optimierer Hotfixes vor SQL Server 2016 RTMOptimierer Hotfixes nach SQL Server 2016 RTM
1.120AusschaltenDeaktiviertDeaktiviert
2.120AufAktiviertDeaktiviert
3.130AusschaltenAktivierte KompatibilitätsgradDeaktiviert
4.130AufAktivierte KompatibilitätsgradAktivierte Kompatibilitätsgrad
Hinweis Nr. 3 festlegen wird Kunden empfohlen, die SQL Server 2016 neu aktualisieren.

Microsoft plant für Hauptversionen nach SQL Server 2016 weiterhin dieses Dienstmodell Optimizer Hotfixes. Standard oder jede Version wird auf Kompatibilität weiter Trace Flag 4199 Hotfixes von der früheren Version aktiviert. Dies bedeutet, dass empfohlene Status für Kunden, die nach der Migration zu den neuesten Kompatibilitätsgrad Ablaufverfolgungsflag 4199 deaktiviert haben. Spätere Hotfixes verwenden Ablaufverfolgungsflag 4199 ermöglichen Updates für Kunden, die diese bestimmte Hotfixes in einer Anwendung zu ermöglichen. Kunden sollten deaktivieren Ablaufverfolgungsflag 4199 aktualisierte Anwendung auf das aktuelle Kompatibilität mit zu unerwarteten zukünftige Optimizer ändert sich unerwartet auf eine Anwendung aktiviert.

Hinweis Während viele Optimierer Hotfixes unter Ablaufverfolgungsflag 4199 aktiviert sind, verwenden einige andere Ablaufverfolgungsflags. Das Ablaufverfolgungsflag 4199 historisch abgedeckte Ablaufverfolgungsflags weit zutreffend und wahrscheinlich in zukünftigen Versionen standardmäßig aktiviert. Alternative Ablaufverfolgungsflags dienen Hotfixes, sind die Vorschriften sehr wenige Kunden, wenn die Korrektur in anderen Applikationen Leistung Regressionen verursachen oder der interne Funktionen Änderungen sehen kann, bevor es für alle Benutzer aktiviert werden kann. Microsoft wird weiterhin mit anderen Ablaufverfolgungsflags Bedarf das Produkt.

Hinweis Dieser Artikel befasst sich das Modell für die Freigabe Ablaufverfolgungsflag 4199 Hotfixes auf das neueste Produkt der aktuelle Kompatibilitätsgrad. (Zum Zeitpunkt der Veröffentlichung ist dieser SQL Server 2016.) Optimierer Hotfixes möglicherweise im Markt ältere SQL Server oder auf niedrigeren Kompatibilitätsgraden (120 oder vorherige) SQL Server 2016 freigegeben. Microsoft wertet jeweils und Ablaufverfolgungsflag 4199 oder andere Ablaufverfolgungsflags bestimmen. Da nicht Hotfix ändert auch bei späteren Kompatibilitätsgrad verschieben aktiviert sind, ist keine bestimmte Versprechen, dass keine Änderungen während einer Aktualisierung (mit oder ohne Ablaufverfolgungsflag 4199) ausgeführt werden. Kunden sollten Änderungen Kompatibilität für Produktion sorgfältig testen und wie Informationsspeicher Abfrage ist ein Plan Wahl verwandte Leistungsproblem Minderung Technologien verwenden.

In der folgenden Tabelle aufgeführt Ablaufverfolgungsflags Abfrage Prozessor Hotfixes vor Ablaufverfolgungsflag 4199 verwendet wurden.
Microsoft Knowledge Base-ArtikelAblaufverfolgungsflags
3185304101
9401284102
9199054103
9203464104
9203474105
9224384106
9238494107
9260244108
9267734109
9337244110
9340654111
9467934115
9508804116
9484454117
9426594119
9539484120
9424444121
9460204122
9482484124
9498544125
9590134126
9535694127
955694
957872
4128
9585474129
9566864131
9580064133
9607704135*

SQLServer 2005


Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 6 für SQL Server 2005 Service Pack 3 veröffentlicht. Für weitere Informationen zu diesem kumulativen Update-Paket, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
974648 kumulative Updatepaket 6 für SQL Server 2005 Service Pack 3
Hinweis Da diese Builds kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die in früheren SQL Server 2005 enthalten waren. Wir empfehlen Sie prüfen die neueste Update-Version, die diesen Hotfix enthält. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
960598 der SQL Server 2005 builds, die nach der Freigabe von SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen SQL Server 2005 Service Pack 3-Hotfix eine Installation von SQL Server 2005 Service Pack 3 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack bereitgestellt wird, in einem nächsten Servicepack für SQL Server enthalten.

SQL Server 2008

Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 7 veröffentlicht. Weitere Informationen zu diesem kumulativen Updatepaket für SQL Server 2008 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
973601 kumulative Updatepaket 7 für SQL Server 2008
Hinweis Da diese Builds kumulativ sind, enthält jede neue Veröffentlichung alle Hotfixes und alle die Sicherheitsupdates, die in den vorherigen SQL Server 2008 Fix-Veröffentlichung enthalten waren. Wir empfehlen Sie prüfen die neueste Update-Version, die diesen Hotfix enthält. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
956909 die SQL Server 2008 builds, die nach der Freigabe von SQL Server 2008

SQL Server 2008 SP1


Die Fehlerbehebung für dieses Problem wurde erstmals im kumulativen Update 7 für SQL Server 2008 Service Pack 1 veröffentlicht. Für weitere Informationen zu diesem kumulativen Update-Paket, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
979065 kumulative Updatepaket 7 für SQL Server 2008 Service Pack 1
Hinweis Da diese Builds kumulativ sind, enthält jede neue Veröffentlichung alle Hotfixes und alle die Sicherheitsupdates, die in den vorherigen SQL Server 2008 Fix-Veröffentlichung enthalten waren. Wir empfehlen Sie prüfen die neueste Update-Version, die diesen Hotfix enthält. Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
970365 die SQL Server 2008 builds, die nach der Freigabe von SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008-Hotfixes sind für bestimmte SQL Server Servicepacks erstellt. Sie müssen SQL Server 2008 Service Pack 1-Hotfix eine Installation von SQL Server 2008 Service Pack 1 anwenden. Standardmäßig ist jeder Hotfix, der in einem SQL Server Servicepack bereitgestellt wird, in einem nächsten Servicepack für SQL Server enthalten.

SQL Server 2008 R2

In der freigegebenen Version von SQL Server 2008 R2 das Ablaufverfolgungsflag 4135 versehentlich aus der Ablaufverfolgungsflags fehlt, die - T4199 gesteuert werden kann. Jedoch wurde dieses kumulative Update 1 für SQL Server 2008 R2 behoben. Ja, für diese und für SQL Server 2005 und SQL Server 2008 unterstützten Editionen, T4199 reicht dies und andere Ablaufverfolgungsflags, die in diesem Artikel aufgeführt sind.

SQL Server 2012 und höher

Ablaufverfolgungsflag 4199 ist in Versionen von SQL Server 2012 und späteren Versionen enthalten.

Aktivieren Sie das Ablaufverfolgungsflag 4199

Sie können das Ablaufverfolgungsflag 4199 Systemstart oder in einer. Dieses Ablaufverfolgungsflags wirkt sich auf globaler Ebene oder auf Sitzungsebene. Aktivieren Sie das Ablaufverfolgungsflag 4199 verwenden Sie den Befehl DBCC TRACEON oder -T 4199 als Startparameter.

DBCC TRACEON\TRACEOFF wird dies einen neuen zwischengespeicherten Plan für gespeicherte Prozeduren nicht regeneriert. Pläne möglicherweise im Cache ohne das Ablaufverfolgungsflag erstellt wurden.

Ausführliche Informationen zum Aktivieren oder Deaktivieren von Ablaufverfolgungsflags und Erklärung globaler und Anwendungsebene Ablaufverfolgungsflags finden Sie in den folgenden Themen in der Onlinedokumentation zu SQL Server:

Referenzen


Weitere Informationen zum Benennungsschema für SQL Server-Updates klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
822499
Neues Benennungsschema für Softwareupdatepakete für Microsoft SQL Server
Um weitere Informationen zur Terminologie für Softwareupdates zu erhalten, klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
824684
Beschreibung der Standardterminologie, die zum Beschreiben von Microsoft-Softwareupdates verwendet wird.
Eigenschaften

Artikelnummer: 974006 – Letzte Überarbeitung: 13.01.2017 – Revision: 1

Microsoft 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 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Enterprise, Microsoft SQL Server 2016 Standard

Feedback