Ermöglichen Sie Plan Auswirkungen auf SQL Server-Abfrage Optimizer Verhalten, das von anderen Ablaufverfolgungsflags auf spezifische Abfrage gesteuert werden können

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 2801413 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Einführung

Beginnend mit Microsoft SQL Server 2000 Service Pack 3 (SP3), muss der SQL Server-Abfrage das Prozessorteam erlassen eine Richtlinie, die von Hotfixes, die potenziell die Ausführung auswirken könnten Planen einer Abfrage durch ein Ablaufverfolgungsflag gesteuert werden. Mit Ausnahme von Fixes zur Dokumentation von Fehlern, die falsche Ergebnisse oder einer Beschädigung führen können, diese Hotfixes sind standardmäßig deaktiviert und eine Ablaufverfolgungs-Flag ist erforderlich, um das Update zu aktivieren. Diese Richtlinie kann unerwartete Änderungen an vorhandenen Arbeitslasten der Ausführungspläne zu vermeiden, die auftreten können, wenn Sie einen Hotfix oder ein Update installiert ist.

Ablaufverfolgungsflags werden in der Regel beim Start oder in einer Benutzersitzung aktiviert. Allerdings kann dies unerwartete Auswirkungen auf einige Abfragen in einer vorhandenen Datenbankanwendung haben. Betrachten Sie z. B. eine Anwendung oder die Arbeitslast, die mehrere Abfragen enthält, und dieser Abfragen verwenden eine ineffiziente Abfrageausführungsplan, die durch Aktivieren eines Ablaufverfolgungsflags, die einen entsprechenden Hotfix steuert verbessert wird. Andere Abfragen können jedoch, einen weniger optimalen Ausführungsplan auftreten, wenn dieselbe Ablaufverfolgungsflag angewendet wird. Dies ist, da die Ausführung Planauswahl wirkt sich auf alle Abfragen, die in der Instanz kompiliert werden, oder die Sitzung, wenn das entsprechende Ablaufverfolgungsflags, aktiviert ist. Je nach der Abfrage und der Daten kann ändern die Modelle, die vom Abfrageoptimierer verwendet werden sowohl verbessern und den Zeitaufwand Ausführung Plan Effizienz und Kompilierung für bestimmte Abfragen.

Wenn ein Ablaufverfolgungsflag wirkt sich auf alle Abfrageausführungsplan in unerwünschter Weise, aber einige andere Abfrageausführungsplan verbessert, können Sie eine entsprechende Ablaufverfolgungsflag für nur eine bestimmte Abfrage aktivieren möchten. Hierzu aktivieren das Ablaufverfolgungsflag in Batch (mithilfe von DBCC TRACEON-Befehl) direkt vor dem Ziel und deaktivieren dann Trace-Flag (mithilfe der DBCC TRACEOFF-Befehl) rechts nach der Abfrage. Jedoch kann dies nicht immer möglich, den Transact-SQL-Batchtext für vorhandene Anwendungen steuern sein. Sie können auftreten einer Beeinträchtigung der Abfrageleistung in Arbeitsauslastung und eine verfügbare Plan Auswirkungen auf Änderung zu einer Abfrage ohne Änderung den Batchtext selbst anwenden möchten. Hierzu können Sie eine Option auf Serverebene Abfrage zum Aktivieren eines Ablaufverfolgungsflags für nur eine bestimmte Abfrage verwenden.

Beginnend mit Microsoft SQL Server 2005 Service Pack 2 (SP2) und Microsoft SQL Server 2008, die Abfrage-Option auf ist "QueryTraceOn." verfügbar. Mit dieser Option können Sie ein Ablaufverfolgungsflag Plan beeinflussen nur während der einzelnen Abfragekompilierung aktivieren. Wie andere Abfrageebene Optionen können Sie zusammen mit Planhinweislisten verwenden, um den Text einer aus jeder Sitzung ausgeführten Abfrage entsprechen und ein Plan beeinflussenden Ablaufverfolgungsflag automatisch anwenden, wenn diese Abfrage kompiliert wird.

Weitere Informationen

QueryTraceOn-Hinweis steht als Abfragehinweis, mit der der Abfrageoptimierer eine Änderung Plan beeinflussen kann, die durch ein Ablaufverfolgungsflag gesteuert wird. Als Teil der OPTION -Klausel ähnelt anderen ist der QueryTraceOn-Hinweis angegeben. Abfragehinweise.

Syntax

<querytraceon_hint> ::=
       { QUERYTRACEON trace_flag_number }

Argumente

QUERYTRACEON. trace_flag_number

Dies gibt eine Plan beeinflussenden Nummer des Ablaufverfolgungsflags, die bei der Kompilierung der Abfrage aktiviert ist. Die folgenden Trace-Flag-Nummern werden unterstützt:
Tabelle minimierenTabelle vergrößern
Das Ablaufverfolgungsflag Microsoft Knowledge Base-ArtikelVerfügbar in
4199974006Kumulativen Updates 6 für SQL Server 2005 Servicepack 3;
Kumulative Update 7 für SQL Server 2008;
Kumulative Update 7 für SQL Server 2008 Servicepack 1;
SQL Server 2008 R2 oder höher.
Alle Ablaufverfolgungsflags fallenden 4199974006Kumulativen Updates 6 für SQL Server 2005 Servicepack 3;
Kumulative Update 7 für SQL Server 2008;
Kumulative Update 7 für SQL Server 2008 Servicepack 1;
SQL Server 2008 R2 oder höher.
23352413549SQL Server 2005 und höheren Versionen.
23402009160SQL Server 2005 und höheren Versionen.
2389, 2390KeineSQL Server 2005 und höheren Versionen. Ein bekanntes Problem in SQL Server 2005 finden Sie Umgebungen 929278.
4136980653Kumulative Update 9 für SQL Server 2005 Servicepack 3;
Kumulative Update 7 für SQL Server 2008 Servicepack 1;
Kumulatives Update 2 für SQL Server 2008 R2 und höher.
41372658214Kumulatives Update 8 für SQL Server 2008 Servicepack 2;
Kumulative Update 7 für SQL Server 2008 Servicepack 3;
Kumulatives Update 5 für SQL Server 2008 R2 Servicepack 1;
Kumulatives Update 1 für SQL Server 2012 und späteren Versionen.
41382667211Kumulatives Update 13 für SQL Server 2008 R2;
Kumulative Update 7 für SQL Server 2008 R2 Servicepack 1;
Kumulatives Update 1 für SQL Server 2008 R2 Servicepack 2;
Kumulative Update 2 für SQL Server 2012 und späteren Versionen...


Die folgenden Plan auswirken Ablaufverfolgungsflags stehen in Microsoft SQL Server-2014:
Tabelle minimierenTabelle vergrößern
Das AblaufverfolgungsflagBeschreibung
9481Verwenden Sie beim Ausführen von SQL Server 2014 mit der Standard-Datenbank-Kompatibilitätsgrad 120. Das Ablaufverfolgungsflag 9481 zwingt den Abfrageoptimierer zu Version (die Version von SQL Server 2012) 70 des Schätzers Kardinalität zu verwenden, wenn den Abfrageplan erstellen.
2312Verwenden Sie beim Ausführen von SQL Server 2014 mit Datenbank-Kompatibilitätsgrad 110, der den Kompatibilitätsgrad für SQL Server 2012 ist. Das Ablaufverfolgungsflag 2312 zwingt den Abfrageoptimierer zu Version 120 (die Version von SQL Server 2014) des Schätzers Kardinalität zu verwenden, wenn den Abfrageplan erstellen.

Bemerkungen

Die Option "QueryTraceOn" wird für Ablaufverfolgungsflags als Ablaufverfolgungsflags, die in der Tabelle aufgeführt sind, nicht unterstützt. Allerdings wird diese Option nicht zurück einen Fehler oder eine Warnung, wenn eine Nummer nicht unterstützten Ablaufverfolgungsflags verwendet wird. Wenn das angegebene Ablaufverfolgungsflag keine, die einen Abfrageausführungsplan betrifft handelt, wird die Option stillschweigend ignoriert.

Mehr als ein Ablaufverfolgungsflag kann in der OPTION -Klausel angegeben werden, wenn QueryTraceOn. trace_flag_number andere Ablaufverfolgung Flag-Nummern, existiert.

Die QueryTraceOn-Option kann verwendet werden Planhinweislisten.

Beispiele

  • Sie können alle Plan beeinflussenden Hotfixes durch das Ablaufverfolgungsflag 4199 für eine bestimmte Abfrage gesteuert. Sie können z. B. die folgende Abfrage verwenden:
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • Sie können alle Plan beeinflussenden Hotfixes von Ablaufverfolgungsflags 4199 und 4137 für eine bestimmte Abfrage gesteuert. Sie können z. B. die folgende Abfrage verwenden:
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

Eigenschaften

Artikel-ID: 2801413 - Geändert am: Freitag, 25. April 2014 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
Keywords: 
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 2801413
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com