メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

はじめに

Microsoft SQL Server 2000 Service Pack 3 (SP3) より後のバージョンの SQL Server では、パフォーマンスの低下を引き起こす可能性のあるプランの変更が既存の実稼働のお客様に表示されるのを防ぐために、ほとんどの修正プログラムが既定以外の状態でクエリ オプティマイザーに配信されました。 最初は、各修正プログラムは個別のトレース フラグで配信されました。 この方法は後で変更され、ほとんどのフラグが 1 つのトレース フラグ (4199) の下に結合されました。 この新しいプラクティスは、次の更新プログラムから始まる複数のバージョンで開始されました。

  • SQL Server 2005 Service Pack 3 (SP3) 累積的更新プログラム 6

  • SQL Server 2008 Service Pack 1 (SP1) 累積更新プログラム パッケージ 7

  • SQL Server 2008 R2 (RTM)

トレース フラグ 4199 は、将来のリリースで既定で有効にすることを意図した修正プログラムを収集するために使用されましたが、修正プログラムが現在の形式で既定で有効になる予定ではない状況では、他のトレース フラグが使用されました。 SQL Server 2016 RTM より、データベース COMPATIBILITY_LEVEL の設定では、既定でトレース フラグ 4199 関連の修正プログラムを有効にするが使用されます。 この記事では、2016 以降のバージョンでプランに影響する修正プログラムを配信する方法の仕組みとポリシー SQL Server説明します。

詳細情報

SQL Server 2016 では、SQL Server の以前のリリースに対して行われたトレース フラグ 4199 修正プログラムは、トレース フラグ 4199 が有効になっていないデータベース COMPATIBILITY_LEVEL 130 で有効になります。 トレース フラグ 4199 は、130 互換性レベルを使用して、データベースの将来の SQL Server 2016 修正プログラムをリリースするために使用されます。 トレース フラグ 4199 は、特定のパフォーマンスの問題が発生しているお客様にのみ推奨されます。お客様は、データベースを最新の互換性レベルに移行した後、トレース フラグ 4199 を削除してください。これは、アプリケーションに適用されない可能性がある将来の修正プログラムにトレース フラグ 4199 が再利用され、実稼働システムで予期しないプランのパフォーマンスの変更が発生する可能性があるためです。 つまり、特定の製品リリースでサポートされている互換性レベルごとに、異なるトレース フラグ 4199 修正プログラムが有効になります。 最新の互換性レベルでは、トレース フラグ 4199 で以前のすべての修正プログラムが既に有効になります。 つまり、データベースを最新の互換性レベルにアップグレードし、トレース フラグ 4199 を削除すると、新しい修正ではなく、データベースのアップグレード前にワークロードが利用しているすべての修正が可能になります。 後でクエリパフォーマンスの問題が発生した場合は、テスト環境でデータベース スコープ オプション QUERY_OPTIMIZER_HOTFIXES またはクエリ ヒント ENABLE_QUERY_OPTIMIZER_HOTFIXES を有効にし、問題が解決されたかどうかを判断します。 詳細については、 のドキュメントをQUERY_OPTIMIZER_HOTFIXES。 

既定では、SQL Server 2016 で作成されたデータベースは互換性レベル 130 を使用し、新しいオプティマイザー ロジックが既に有効になっています。

このモデルの主な利点は、アップグレード プロセス中の実稼働システムのリスクを軽減する方法です。 この方法では、新しいメジャー バージョンのアプリケーションのインストールSQL Server、すべての新しいクエリ プロセッサの変更を自動的に有効にする方法から分離されます。 メジャー バージョンのアップグレードではファイル形式が変更され、元に戻すことができないので、COMPATIBILITY_LEVEL 設定を使用すると、アップグレード中に予期しないプランのパフォーマンスの問題が見つかった場合に、お客様はすぐにダウングレードできます。 お客様がアプリケーションのアップグレードをブロックする予期しないプランの変更を見つけた場合、お客様はクエリ ストアを使用して以前のプランを強制することで適切なプラン ヒントを適用することで状況を緩和できます。または、問題を解決するために Microsoft カスタマー サポートに連絡して回避策または修正プログラムを提供することで、状況を緩和できます。 すべての問題を減らした場合、アップグレードを続行できます。 お客様は、この機能を 2016 年 2016 年のアップグレード計画SQL Server必要があります。

次の表では、2016 年からトレース フラグ 4199 が動作するSQL Server説明します。

設定

SQL互換性レベル

トレース フラグ 4199

2016 RTM をSQL Serverオプティマイザー修正プログラム

2016 RTM のSQL Serverオプティマイザー修正プログラム

1.

120

オフ

無効

無効

2.

120

オン

有効

無効

3.

130

オフ

互換性レベルで有効

無効

4.

130

オン

互換性レベルで有効

互換性レベルで有効

注意 2016 年に新しくアップグレードするお客様には、3 SQL Serverです。

2016 年 2016 年SQL Serverメジャー リリースでは、オプティマイザー修正プログラムに対してこのサービス モデルを引き続き使用する予定です。 既定または各リリースでは、以前のリリースのトレース フラグ 4199 修正プログラムは、次の互換性レベルで有効になります。 つまり、お客様が最新の互換性レベルに移行した後に推奨される状態は、トレース フラグ 4199 が無効になります。 以降の修正プログラムでは、トレース フラグ 4199 を使用して、アプリケーションでこれらの特定の修正プログラムを有効にする必要があるお客様の修正を有効にできます。 アプリケーションが最新の互換性レベルにアップグレードされた後にトレース フラグ 4199 を無効にし、アプリケーションで予期しない将来のオプティマイザーの変更が予期せず有効にされるのを避けることをお勧めします。 最新の互換性レベルにアップグレードし、トレース フラグ 4199 を削除すると、アップグレード前にワークロードが利用しているすべての修正が可能になりますが、新しい修正は可能ではありません。

多くのオプティマイザー修正プログラムはトレース フラグ 4199 で有効になっていますが、他のトレース フラグを使用する場合があります。 トレース フラグ 4199 は、広く適用され、将来のリリースで既定で有効になる可能性が高い、これまでカバーされているトレース フラグです。 代替トレース フラグは、条件が少数のお客様にのみ固有の修正プログラムで使用されます。修正により、他の種類のアプリケーションでパフォーマンスが低下する可能性があります。また、内部機能がすべてのユーザーに対して有効になる準備が整う前に変更が表示される場合があります。 Microsoft は、製品のサービスを提供するために必要に応じて、引き続き他のトレース フラグを使用します。

この記事では、最新の製品の最新の互換性レベルでトレース フラグ 4199 修正プログラムをリリースするモデルについて説明します。 (公開時には、2016 SQL Serverされます)。 オプティマイザー修正プログラムは、SQL Server の以前の市場バージョンまたは 2016 年の下位互換性レベル (120 以前) でリリースSQL Serverがあります。 Microsoft は、各ケースを評価し、トレース フラグ 4199 または別のトレース フラグを使用するかどうかを決定します。 修正プログラム以外の変更は、後の互換性レベルへの移行時にも有効になっているため、アップグレード中 (トレース フラグ 4199 の場合とない場合) にプランの変更が行われるという具体的な保証はありません。 お客様は、実稼働アプリケーションの互換性レベルの変更を常に慎重にテストする必要があります。また、プラン選択に関連するパフォーマンスの問題がある場合は、クエリ ストアなどの軽減テクノロジを使用する必要があります。

参考までに、トレース フラグ 4199 の導入前にクエリ プロセッサ修正プログラムに次のトレース フラグが使用されました。

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 以降のバージョン

トレース フラグ 4199 は、2012 以降のバージョンの SQL Serverに含まれています。

トレース フラグ 4199 を有効にする方法

トレース フラグ 4199 は、起動時またはユーザー セッションで有効にできます。 このトレース フラグには、グローバル レベルまたはセッション レベルの効果があります。 トレース フラグ 4199 を有効にするには、DBCC TRACEON コマンドを使用するか、スタートアップ パラメーターとして –T 4199 を使用します。

DBCC TRACEON\TRACEOFF を使用する場合、ストアド プロシージャの新しいキャッシュされたプランは再生成されません。 プランは、トレース フラグなしで作成されたキャッシュ内にある可能性があります。

トレース フラグを有効または無効にする方法の詳細と、グローバルおよびセッション レベルのトレース フラグの説明については、「SQL Server Books Online:

関連情報

SQL Server 更新プログラムの名前付けスキーマの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

822499
新しいソフトウェア更新プログラム パッケージMicrosoft SQL Server名前付けスキーマ
ソフトウェア更新プログラムの用語の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

824684
Microsoft ソフトウェア更新プログラムの説明に使用される標準用語の説明

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×