SQL Server Query Optimizer Hotfix Trace Flag 4199 Dienstmodell

Se aplica a: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Enterprise EditionMicrosoft SQL Server 2005 Standard X64 Edition Más

EINFÜHRUNG


Microsoft SQL Server-Versionen, die höher als SQL Server 2000 Service Pack 3 (SP3) übermittelt Hotfixes der Abfrageoptimierer in einem Zustand deaktiviert standardmäßig um bestehenden zu verhindern, die Kunden sehen, erwartete Plan ändert verursachen Leistung Regressionen. 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, werden Kunden empfohlen, entfernen Ablaufverfolgungsflag 4199 Nachdem sie ihre Datenbanken auf das aktuelle Kompatibilität migrieren, weil Ablaufverfolgungsflag 4199 für wiederverwendet werden zukünftige Updates, gelten nicht für die Anwendung und verursachen Performance unerwartete Änderungen in einem Produktionssystem. Dies bedeutet, dass verschiedene Trace Flag 4199 Hotfixes für jede Kompatibilitätsgrad aktiviert sind, die in einer bestimmten Produktversion unterstützt. Taktuelle Kompatibilitätsgrad He kann bereits alle vorherigen Updates unter Ablaufverfolgungsflag 4199. Dies bedeutet, dass eine Datenbank aktualisieren, den aktuellen Kompatibilitätsgrad und Ablaufverfolgungsflag 4199 entfernen alle Updates erlaubt, die vor der Aktualisierung der Datenbank, nur keine neuen Updates eine Arbeitslast genutzt wurden. Wenn zu einem späteren Zeitpunkt Abfrage Leistungsprobleme auftreten, beschränkt mit die Datenbank aktivieren Option QUERY_OPTIMIZER_HOTFIXES oder Abfrage Hinweis ENABLE_QUERY_OPTIMIZER_HOTFIXES in einer Umgebung, zu ermitteln, ob die Probleme aufgelöst. Lesen Sie die Dokumentation zu QUERY_OPTIMIZER_HOTFIXES

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. Wenn ein unerwarteten Plan findet, blockiert anwendungsaktualisierung ändern, kann die Situation durch Anwenden eines entsprechenden Plan-Hinweis mithilfe Abfrage laden den vorherigen Plan erzwungen vereinfachen, oder die Situation an Microsoft Customer vereinfachen können Unterstützt das Problem eine Lösung oder Hotfix. 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.

Einstellung SQL-Kompatibilitätsgrad Ablaufverfolgungsflags 4199 Optimierer Hotfixes vor SQL Server 2016 RTM Optimierer Hotfixes nach SQL Server 2016 RTM
1. 120 Ausschalten Deaktiviert Deaktiviert
2. 120 Auf Aktiviert Deaktiviert
3. 130 Ausschalten Aktivierte Kompatibilitätsgrad Deaktiviert
4. 130 Auf Aktivierte Kompatibilitätsgrad Aktivierte 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. Der aktuelle Kompatibilitätsgrad aktualisieren und Entfernen von Ablaufverfolgungsflag 4199 trotzdem alle können behebt, eine Arbeitslast vor dem Upgrade, nur keine neuen Updates genutzt wurden.

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 in Updates dienen, wenn die Umstände sind sehr wenige Kunden, in dem das Update Leistung Regressionen in anderen Applikationen kann oder interne Funktionen Änderungen sehen kann, bevor sie bereit ist für alle Benutzer aktiviert. 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-Artikel Ablaufverfolgungsflags
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
955694957872 4128
958547 4129
956686 4131
958006 4133
960770 4135*

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:

Informationsquellen


Weitere Informationen zum Benennungsschema für SQL Server-Updates klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
Neues Benennungsschema für Microsoft SQL Server-Software 822499 Pakete aktualisieren
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 Erläuterung von der standardmäßigen Standardbegriffen bei Microsoft Softwareupdates