プランに影響を及ぼす SQL Server のクエリ オプティマイザーの動作は特定のクエリのレベルで異なるトレース フラグによって制御可能な有効にします。

文書翻訳 文書翻訳
文書番号: 2801413 - 対象製品
すべて展開する | すべて折りたたむ

はじめに

Microsoft SQL Server 2000 Service Pack 3 (SP3) 以降、SQL Server クエリ プロセッサのチーム クエリの実行に影響する可能性のあるすべての修正プログラムを計画しているポリシーを採用する必要がありますトレース フラグによって制御されます。不正な結果や破損の原因となるバグの修正を除いてこれらの修正プログラムは、既定でオフになっている、トレース フラグは、修正プログラムを有効にする必要このポリシーにより、修正プログラムまたはセキュリティ更新プログラムがインストールされている場合に発生する既存のワークロードの実行プランに予期しない変更を回避できます。

通常の起動時や、ユーザー セッションでトレース フラグが有効にします。ただし、既存のデータベース アプリケーションでいくつかのクエリに予期しない影響を必要これがあります。たとえば、アプリケーションやワークロードを複数のクエリを含むし、が改善され、対応する修正プログラムを制御する、トレース フラグを有効にすると、効率の悪いクエリ プランを使用してこれらのクエリの一部です。ただし、他のクエリは同じトレース フラグを適用すると、未満の最適な実行プランを発生ことがあります。これは、インスタンス内でコンパイルされるすべてのクエリに影響を与える、実行プランが選択またはトレース フラグ、対応するときに、セッションが有効になっているためです。によっては、クエリとデータは、クエリ オプティマイザーによって使用されるモデルを変更する可能性があります向上し、特定のクエリの実行プランの効率とコンパイル時間を短縮します。

トレース フラグ、望ましくない方法で、クエリの実行プランに影響を与えるその他のクエリの実行プランを向上させる場合は、特定のクエリに対応するトレース フラグを有効にすることがあります。これにより、対象のクエリの前に、バッチ (DBCC TRACEON コマンドを使用して) を右には、トレース フラグを有効にして、クエリの後に右側のトレース フラグを使用して DBCC TRACEOFF コマンド) を無効にし、実行できます。ただし、これが常にできない、Transact SQL バッチのテキストを既存のアプリケーションを制御します。既存のワークロードでのパフォーマンスの低いクエリと、クエリにバッチ テキスト自体を変更せずに利用可能な計画に影響を与える変更を適用することがあります。これは特定のクエリのトレース フラグを有効にするのには、クエリ レベル オプションを使用して実行できます。

Microsoft SQL Server 2005 Service Pack 2 (SP2) および Microsoft SQL Server 2008 年のレベルのクエリのオプションから「QUERYTRACEON」は使用できます。このオプションでは、単一クエリのコンパイル中にのみ、計画に影響を与えるトレース フラグを有効にすることができます。他のレベルのクエリのオプションと同様に任意のセッションを実行中のクエリのテキストと一致するとプラン ガイドを使用してこのクエリーをコンパイルするときに、計画に影響を与えるトレース フラグを自動的に適用できます。

詳細

QUERYTRACEON ヒントでは、トレース フラグによって制御される、クエリ オプティマイザーのプランに影響を与える変更をクエリ ヒントとして使用されます。QUERYTRACEON のヒントは、 OPTION句のようなその他の一部として指定されます。 クエリ ヒント.

構文

<querytraceon_hint> ::=
       { QUERYTRACEON trace_flag_number }

引数

QUERYTRACEON trace_flag_number

これは、数を指定、計画に影響を及ぼすトレース フラグ、クエリのコンパイル時に有効になっています。次のトレース フラグの番号はサポートされています。
元に戻す全体を表示する
トレース フラグ マイクロソフト サポート技術情報の記事利用できます。
4199974006SQL Server 2005 Service Pack 3; 用の累積的な更新プログラム 6
累積的な更新プログラム 7 の SQL Server 2008。
SQL Server 2008 Service Pack 1 用の累積的な更新プログラム 7
SQL Server 2008 R2 およびそれ以降のバージョン。
すべてのトレース フラグ 4199 に覆われて974006SQL Server 2005 Service Pack 3; 用の累積的な更新プログラム 6
累積的な更新プログラム 7 の SQL Server 2008。
SQL Server 2008 Service Pack 1 用の累積的な更新プログラム 7
SQL Server 2008 R2 およびそれ以降のバージョン。
23352413549SQL Server 2005 およびそれ以降のバージョン。
23402009160SQL Server 2005 およびそれ以降のバージョン。
2389、2390年[なし]SQL Server 2005 およびそれ以降のバージョン。SQL Server 2005 では、既知の問題の環境を参照してください。 929278。
4136980653累積的な更新プログラム 9 SQL Server 2005 Service Pack 3;
SQL Server 2008 Service Pack 1 用の累積的な更新プログラム 7
それ以降のバージョンの SQL Server 2008 R2 の累積的な更新 2。
41372658214SQL Server 2008 Service Pack 2 用の累積的な更新プログラム 8
累積的な更新プログラム 7 の SQL Server 2008 Service Pack 3。
SQL Server 2008 R2 Service Pack 1 用の累積的な更新 5
SQL Server 2012年およびそれ以降のバージョンの累積的な更新 1。
41382667211SQL Server 2008 R2 は用の累積的な更新プログラム 13
SQL Server 2008 R2 Service Pack 1 用の累積的な更新プログラム 7
SQL Server 2008 R2 Service Pack 2 用の累積的な更新 1
SQL Server 2012年およびそれ以降のバージョンの累積的な更新 2.


次の計画に影響を与えるトレース フラグは 2014 の Microsoft SQL Server で利用できます。
元に戻す全体を表示する
トレース フラグ説明
9481既定データベース互換性レベルが 120 2014 の SQL Server を実行するときに使用します。トレース フラグ 9481 強制的にクエリ オプティマイザーにクエリ プランを作成するときに、基数の見積もりのバージョン 70 (SQL Server 2012年のバージョン) を使用します。
2312互換性レベルを SQL Server 2012年のデータベース互換性レベル 110 で 2014 の SQL Server を実行するときに使用します。トレース フラグ 2312年強制的にクエリ オプティマイザーにクエリ プランを作成するときに、基数の見積もりのバージョン 120 (2014 の SQL Server のバージョン) を使用します。

「解説」

以外の表に記載されているトレース フラグは、トレース フラグは、QUERYTRACEON オプションはサポートされません。ただし、このオプションは返しませんエラーまたは警告がサポートされていないトレース フラグの番号を使用する場合。指定されたトレース フラグがない場合、クエリの実行プランに影響する、オプションは警告なしで無視されます。

場合は、 OPTION句で指定できる 1 つ以上のトレース フラグ QUERYTRACEON trace_flag_number 別のトレース フラグの番号を持つが重複しています。

QUERYTRACEON オプションを使用できます。 計画ガイド.

  • すべての計画に影響を与える修正特定のクエリでは、トレース フラグ 4199 によって制御することができます。たとえば、次のクエリを使用できます。
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • トレース フラグ 4199 および 4137 に対して特定のクエリによって制御されるすべての計画に影響を与える修正を有効にすることができます。たとえば、次のクエリを使用できます。
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

プロパティ

文書番号: 2801413 - 最終更新日: 2014年4月25日 - リビジョン: 4.0
この資料は以下の製品について記述したものです。
  • 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
キーワード:?
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:2801413
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

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