次の方法で共有


DBCC TRACEON - トレース フラグ (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

トレース フラグは、サーバー固有の特性を設定したり、特定の動作を変更したりするときに使用します。 たとえば、トレース フラグ 3226 は、よく使用されるスタートアップ トレース フラグであり、エラー ログ内のバックアップの成功メッセージを抑制します。 トレース フラグは、パフォーマンスの問題を診断する場合や、ストアド プロシージャや複雑なコンピューター システムをデバッグする場合によく使用されますが、特定のワークロードに悪影響を及ぼす動作に対応するために Microsoft サポートがお勧めすることもあります。

ドキュメントに記載されているすべてのトレース フラグと Microsoft サポートがお勧めするトレース フラグは、指示どおりに使用した場合、運用環境で完全にサポートされます。 この一覧のトレース フラグには、使い方によっては他にも考慮すべき事項がある場合があるため、ここに示したすべての推奨事項とサポート エンジニアによる推奨事項を注意深く確認することをお勧めします。 また、SQL Server での構成変更と同様に、展開する前に、運用環境以外でこのフラグを徹底的にテストすることをお勧めします。

解説

SQL Server では、クエリ、セッション、およびグローバルの 3 つのスコープでトレース フラグを使用できます。 クエリ トレース フラグは、特定のクエリのコンテキストに対してアクティブです。 セッション トレース フラグは、1 つの接続についてアクティブで、その接続に対してのみ表示可能です。 グローバル トレース フラグは、サーバー レベルで設定され、サーバー上のすべての接続に対して表示可能です。 フラグには、グローバルとしてのみ有効化できるフラグと、グローバルまたはセッション スコープのどちらかで有効化できるフラグがあります。

次の規則が適用されます。

  • グローバル トレース フラグは、グローバルに有効化する必要があります。 グローバルに有効化しない場合、そのトレース フラグは機能しません。 -T コマンド ライン オプション (Windows の場合)、または mssql-conf (Linuxの場合) を使用して、起動時にグローバル トレース フラグを有効にすることをお勧めします。 このようにすると、サーバーの再起動後も、トレース フラグはアクティブなままになります。 トレース フラグを有効にするには、SQL Server を再起動します。

  • トレース フラグのスコープがグローバル、セッション、クエリのいずれかの場合、適切なスコープで有効化できます。 セッション レベルで有効化したトレース フラグは、別のセッションには影響せず、セッションを開いた SPID がサインアウトすると無効になります。

トレース フラグを ON または OFF に設定するには、次のいずれかの方法を使用します。

  • DBCC TRACEON コマンドと DBCC TRACEOFF コマンドの使用。

    たとえば、2528 トレース フラグをグローバルに有効にするには、DBCC TRACEON-1 引数を指定して使用します (DBCC TRACEON (2528, -1))。 DBCC TRACEON で有効にしたグローバル トレース フラグの効果は、サーバーを再起動すると失われます。 グローバル トレース フラグをオフにするには、DBCC TRACEOFF-1 引数を指定して使用します。

  • -T スタートアップ オプションを使用して、起動時にトレース フラグを設定するように指定する。

    -T スタートアップ オプションを使用すると、トレース フラグをグローバルに有効化できます。 スタートアップ オプションを使用してセッションレベルのトレース フラグを有効化することはできません。 このようにすると、サーバーの再起動後も、トレース フラグはアクティブなままになります。 スタートアップ オプションの詳細については、「 データベース エンジン サービスのスタートアップ オプション」をご覧ください。

  • クエリ レベルで、QUERYTRACEON クエリ ヒントを使用する。 QUERYTRACEON オプションは、この記事で後述する表に記載されているクエリ オプティマイザー トレース フラグに対してのみサポートされています。

現在有効なトレース フラグを確認するには、DBCC TRACESTATUS コマンドを使用します。

次の例では、DBCC TRACEON を使用することによって、サーバー レベルですべてのセッションにトレース フラグ 3205 を設定します。

DBCC TRACEON (3205, -1);

特定のクエリに対し、トレース フラグ 4199 および 4137 によって制御される、プランに影響するすべての修正プログラムを有効にすることができます。

SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137);

トレース フラグ

次の表は、SQL Server で使用できるトレース フラグの一覧とその説明です。

Azure SQL Managed Instance では、次のグローバル トレース フラグがサポートされています。460、2301、2389、2390、2453、2467、7471、8207、9389、10316、および 11024。 SQL Managed Instance では、セッション トレース フラグはまだサポートされていません。

一部のトレース フラグは、SQL Server の特定のバージョンで導入されました。 該当するバージョンについて詳しくは、特定のトレース フラグに関連する Microsoft サポート記事をご覧ください。

トレース フラグの動作は、今後の SQL Server のリリースではサポートされない可能性もあります。

トレース フラグは、URL の末尾に追加できるブックマークを介して、テーブル内で直接参照できます (形式 #tfNNNN を使用)。 たとえば、テーブルのトレース フラグ 1118 に直接ジャンプするには、dbcc-traceon-trace-flags-transact-sql#tf1118 を使用します。

トレース フラグ 説明
101 マージ レプリケーション エージェントのログ記録の詳細度を高くします。

重要: トレース フラグ 101 をレプリケーション マージ エージェントに対してのみ有効にするには、コマンド プロンプトから replmerg.exe を実行するときに -T オプションを使用します。

警告: トレース フラグ 101 は、運用環境で継続的に有効にするためのものではなく、時間を限定したトラブルシューティング目的でのみ使用します。 詳細については、アーカイブ バージョン KB2892633 を参照してください。

スコープ: レプリケーション マージ エージェントのみ。
102 マージ レプリケーション エージェントのログ記録の詳細度を高め、<配信サーバー>..msmerge_history テーブルに転送します。

重要: トレース フラグ 102 をレプリケーション マージ エージェントに対してのみ有効にするには、コマンド プロンプトから replmerg.exe を実行するときに -T オプションを使用します。

警告: トレース フラグ 102 は、運用環境で継続的に有効にするためのものではなく、時間を限定したトラブルシューティング目的でのみ使用します。 詳細については、アーカイブ バージョン KB2892633 を参照してください。

スコープ: レプリケーション マージ エージェントのみ。
139 互換性レベルが低いデータベースで、特定のデータ型に対して互換性レベル 130 で導入された精度の向上と変換ロジックを分析するときに、DBCC CHECKDBDBCC CHECKTABLEDBCC CHECKCONSTRAINTS などの DBCC チェック コマンドのスコープで正しい変換セマンティクスを強制します。 詳細については、KB4010261を参照してください。

適用対象: SQL Server 2016 (13.x) RTM CU 3、SQL Server 2016 (13.x) Service Pack 1 以降のバージョン。

警告: トレース フラグ 139 は、運用環境で継続的に有効にするためのものではなく、KB4010261 で説明されているデータベース検証チェックを実行する目的でのみ使用する必要があります。 検証チェック完了後直ちに無効にする必要があります。

スコープ: グローバルのみ。
174 64 ビット システムで、SQL Server データベース エンジン プラン キャッシュ バケット数を 40,009 から 160,001 に増やします。 詳細については、KB3026083 を参照してください。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバルのみ。
176 計算済みパーティション分割列を含むテーブルのパーティションをオンラインで再構築するときのエラーを修正できるようにします。 詳細については、KB3213683 および KB4541096 を参照してください。

スコープ: グローバルまたはセッション。
205 統計の自動更新の結果として統計に依存するストアド プロシージャが再コンパイルされるときに、エラー ログにレポートします。 詳細については、アーカイブ バージョン KB195565 を参照してください。

注: このトレース フラグでは、トレース フラグ 3605 が有効になっている必要があります。

スコープ: グローバルのみ。
260 拡張ストアド プロシージャのダイナミックリンク ライブラリ (DLL) に関するバージョン情報を出力します。 GetXpVersion() について詳しくは、「拡張ストアド プロシージャの作成」をご覧ください。

スコープ: グローバルまたはセッション。
272 サーバーが突然再起動したか、セカンダリ サーバーにフェールオーバーしたときに ID 列の値に隔たりができることを回避するため、ID の事前割り当てを無効にします。 ID キャッシュは、ID 列が含まれるテーブルでの INSERT パフォーマンスを改善するために使用されます。

注: SQL Server 2017 (14.x) 以降において、データベース レベルでこれを実現する方法については、「ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)」の IDENTITY_CACHE オプションを参照してください。

スコープ: グローバルのみ。
460 データ切り捨てのメッセージ ID 8152 がメッセージ ID 2628 に置き換えられます。 詳細については、KB4468101 を参照してください。

SQL Server 2019 (15.x) 以降で、データベース レベルでこれを実現する方法については、「ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)」の VERBOSE_TRUNCATION_WARNINGS オプションを参照してください。

適用対象: SQL Server 2016 (13.x) Service Pack 2 CU 6、SQL Server 2017 (14.x) CU 12 以降のバージョン。

注: データベース互換性レベル 150 からはメッセージ ID 2628 が既定値となり、このトレース フラグに影響がありません。 データベース互換性レベルが 140 以下の場合、メッセージ ID 2628 は、トレース フラグ 460 を有効にする必要があるオプトイン エラー メッセージのままであり、このデータベース スコープ構成の効果はありません。

スコープ: グローバルまたはセッション。
610 インデックスが作成されたテーブルへの最小ログ記録の挿入を制御します。 SQL Server 2016 (13.x) 以降からは、インデックス付きテーブルに対して最小ログ記録が既定で有効になるため、このトレース フラグは不要です。 SQL Server 2016 (13.x) では、一括読み込み操作によって新しいページが割り当てられると、最小ログ記録に関する他の前提条件がすべて満たされている場合、その新しいページに連続して入力されるすべての行のログ記録は最小限に抑えられます。 インデックスの順序を維持するために (新しいページの割り当てなしで) 既存のページに挿入される行は、読み込み中のページ分割の結果として移動される行なので、完全ログ記録されます。

割り当て中にページ ロックが取得され、ページまたはエクステントの割り当てのみがログに記録されるため、最小ログ記録操作が機能するには、インデックスの ALLOW_PAGE_LOCKS を ON にすることも重要です (既定値は ON)。 詳細については、「データ ローディング パフォーマンス ガイド」を参照してください。

スコープ: グローバルまたはセッション。
634 バックグラウンドの列ストア圧縮タスクを無効にします。 SQL Server では、圧縮されていないデータが含まれる列ストア インデックス行グループを圧縮する組ムーバー バックグラウンド タスクが定期的に実行されます。この行グループの圧縮処理は 1 つずつ実行されます。

列ストアの圧縮によりクエリのパフォーマンスは向上しますが、この処理はシステム リソースを消費します。 列ストア圧縮のタイミングは手動で制御できます。それには、トレース フラグ 634 でバックグラウンド圧縮タスクを無効にし、好きなタイミングで ALTER INDEX...REORGANIZE または ALTER INDEX...REBUILD を明示的に呼び出します。

スコープ: グローバルのみ。
652 ページのプリフェッチ スキャンを無効にします。 トレース フラグ 652 を有効にすると、これらのデータベース ページがスキャンによって使用される前に、SQL Server によってデータベース ページがバッファー プールに読み込まれなくなります。 その結果、ページのプリフェッチ機能を利用するクエリでは、パフォーマンスが低下します。

スコープ: グローバルまたはセッション。
661 ゴースト レコードの削除プロセスを無効にします。 トレース フラグ 661 は、ゴースト レコードの削除プロセスを無効にします。 ゴースト レコードは、削除操作の結果です。 レコードを削除すると、削除されたレコードはゴースト レコードとして保持されます。 その後、削除されたレコードは、ゴースト レコードの削除プロセスによって消去されます。 このプロセスを無効にすると、削除されたレコードは消去されません。 そのため、削除されたレコードが消費している領域は解放されません。 この動作は、領域の消費とスキャン操作のパフォーマンスに影響します。 詳細については、「ゴースト クリーンアップ プロセスのガイド」を参照してください。

スコープ: グローバルのみ。
692 ヒープまたはクラスター化インデックスへのデータの一括読み込みの間に高速挿入を無効にします。 SQL Server 2016 (13.x) 以降では、高速挿入が既定で有効になり、データベースが単純または一括ログ復旧モデルの場合、最小ログ記録を使用して、新しいページに挿入されるレコードの挿入パフォーマンスが最適化されます。 高速挿入では、挿入のパフォーマンスを最適化するため、各一括読み込みバッチは新しいエクステントを取得し、使用可能な空き領域を持つ既存エクステントの割り当ての参照をバイパスします。

高速挿入では、小さいバッチ サイズの一括読み込みにより、オブジェクトによって消費される未使用領域が増加する可能性があるため、各バッチに大きいバッチ サイズを使ってエクステントを完全に埋めることをお勧めします。 バッチ サイズを大きくできない場合は、このトレース フラグを使うと、パフォーマンスは低下しますが、確保される未使用領域を減らすのに役立ちます。

適用対象: SQL Server 2016 (13.x) 以降のバージョン。

スコープ: グローバルまたはセッション。
715 非クラスター化インデックスのないヒープへの一括読み込み操作で、テーブル ロックを有効にします。 このトレース フラグを有効にすると、一括読み込み操作は、テーブルにデータを一括コピーするときに、一括更新 (BU) ロックを取得します。 一括更新 (BU) ロックを使用すると、複数のスレッドで同時にデータを同一のテーブルに一括で読み込むことができますが、データを一括読み込みしていない他のプロセスは、その間テーブルにアクセスできません。

この動作は、一括読み込みを実行するときにユーザーが明示的に TABLOCK ヒントを指定する場合、または一括読み込みでの sp_tableoption テーブル ロックが特定のテーブルに対して有効になっている場合と、似ています。 ただし、このトレース フラグを有効にすると、クエリまたはデータベースの変更なしに、この動作が既定になります。

スコープ: グローバルまたはセッション。
809 ハイブリッド バッファー プールの "直接書き込み" と呼ばれる動作を有効にします。 このモードでは、永続化されたログ バッファーをハイブリッド バッファー プールと同じデータベースで有効にする必要があります。 "直接書き込み" では、ハイブリッド バッファー プールがダーティとクリーン両方のページのキャッシュとして機能し、OLAP および OLTP スタイルのワークロードについて DRAM バッファー プールに対するワークロードの要求を減らすことができます。 このトレース フラグは SQL Server 2022 (16.x) で導入されました。この動作は SQL Server 2022 (16.x) CU 1 で既定で有効になっています。 SQL Server 2022 (16.x) CU 1 以降のバージョンを使う場合、トレース フラグは無視されます。
818 追加の I/O 診断を有効にして、ファイル I/O 操作中の書き込み消失または古い読み取りの状態の有無を確認します。 トレース フラグ 818 を有効にすると、インメモリ リング バッファーが有効になります。これは、SQL Server によって実行された直前の 2,048 回の成功した書き込み操作 (並べ替えと作業ファイル I/O は含まない) を追跡するために使用されます。 エラー 605、823、3448 などが発生すると、入力バッファーのログ シーケンス番号 (LSN) の値が、最近の書き込みリストと比較されます。 取得した LSN が書き込み操作中に指定された LSN よりも古い場合は、新しいエラー メッセージが SQL Server エラー ログに記録されます。 詳細については、「SQL Server 診断では、報告されていない I/O の問題が検出されます」を参照してください。

注: SQL Server 2017 (14.x) 以降には、このトレース フラグは影響しません。

スコープ: グローバルのみ。
830 完了までに非常に時間がかかる I/O 要求の検出とレポートを無効にします。 既定では、SQL Server では長い時間がかかる (一般に 15 秒を超える) 読み取りと書き込みの I/O 要求を検出するメカニズムが使用されます。 このトレース フラグは、この検出を無効にします。 詳細については、「MSSQLSERVER_833」を参照してください

注: システム上の I/O に関する問題を検出する機能が低下するおそれがあるため、このトレース フラグを有効にすることはお勧めしません。

スコープ: グローバルのみ。
834 バッファー プール、列ストア、およびインメモリ テーブルに対して大きいページの割り当てを使用します。 サイズの大きいページはハードウェア プラットフォームによって異なりますが、ページ サイズは 2 MB から 16 MB までの範囲で指定できます。 大きなページは起動時に割り当てられ、プロセスの有効期間全体にわたって保持されます。 トレース フラグ 834 は、CPU でのトランスレーション ルックアサイド バッファー (TLB) の効率を向上させることで、パフォーマンスを向上させます。 つまり、トレース フラグ 834 によって、メモリ管理ハードウェアによって実行される物理から仮想メモリへのアドレス変換を管理する効率が向上します。 SQL Server と大規模なページの詳細については、次のブログを参照してください。

注: トレース フラグ 834 は、SQL Server の 64 ビット バージョンにのみ適用されます。 トレース フラグ 834 を有効にするには、メモリ内のページのロック ユーザー権限を持っている必要があります。 トレース フラグ 834 は、起動時にのみ有効にすることができます。 メモリが断片化している場合や、大きなページを割り当てることができない場合、トレース フラグ 834 によってサーバーが起動しくなる可能性があります。 したがって、トレース フラグ 834 は、SQL Server 専用のサーバーで使用することをお勧めします。

注: 大きいページのメモリ モデルを有効にした場合、インスタンスの起動時にすべての SQLOS メモリが事前に割り当てられ、そのメモリは OS に返されません。

注: SQL Server 2012 (11.x) 以降のバージョンの列ストア インデックス機能を使用する場合、トレース フラグ 834 を有効にするのはお勧めしません。 詳細については、KB3210239 を参照してください。 SQL Server 2019 (15.x) と列ストアを使用する場合は、代わりに「トレース フラグ」の876 を参照してください。

スコープ: グローバルのみ。
836 バッファー プールに対して max server memory オプションを使用します。 トレース フラグ 836 によって、SQL Server で、物理メモリの合計に基づいてではなく、max server memory オプションの値に基づいて、起動時にバッファー プールのサイズが設定されます。 トレース フラグ 836 を使用すると、起動時に 32 ビット Address Windowing Extensions (AWE) モードで割り当てられるバッファー記述子の数を減らすことができます。

注: トレース フラグ 836 は、AWE 割り当てが有効になっている SQL Server の 32 ビット バージョンにのみ適用されます。 トレース フラグ 836 は、起動時にのみ有効にすることができます。

スコープ: グローバルのみ。
845 SQL Server のサービス アカウントで Lock Pages in Memory 特権が有効になっている場合、SQL Server の Standard SKU でロックされたページを有効にします。 詳細については、KB970070、およびサーバー メモリのサーバー構成オプションに関するページを参照してください。

注: SQL Server 2012 (11.x) 以降では、この動作は Standard SKU に対して既定で有効になるので、トレース フラグ 845 を使用しないでください。

スコープ: グローバルのみ。
876 列ストアに大きいページの割り当てを使用します。

注: トレース フラグ 834 とは異なり、トレース フラグ 876 を使用すると、インスタンスの起動時に SQLOS メモリが事前に割り当てられず、未使用のメモリを解放できます。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバルのみ。
888 PMEM デバイスのメモリ不足時に SQL Server でハイブリッド バッファー プールが有効になっている PMEM デバイスのパフォーマンスの低下を解決します。 詳しくは、KB4548103 を参照してください。

適用対象: SQL Server 2019 (15.x) CU 4 以降のバージョン。

スコープ: グローバルのみ。
890 エラー ログで長いバッファー プール スキャンの完了メッセージ (エラー 898) を抑制します。 バッファー プール スキャンとエラー ログに記録されるメッセージの詳細については、「大規模メモリを搭載したコンピューターでバッファー プール スキャンをトリガーする操作の実行が低速になる場合がある」を参照してください。

適用対象: SQL Server 2017 (14.x) 以降のバージョン。

スコープ: グローバルのみ。
898 トラブルシューティングまたはデバッグのために、ハイブリッド バッファー プール直接書き込み動作を無効にします。 詳しくは、KB5022375 を参照してください。

適用対象: SQL Server 2022 (16.x) CU 1 以降のバージョン。

スコープ: グローバルのみ。
902 累積更新プログラムまたは Service Pack をインストールするときに、データベース アップグレード スクリプトの実行をバイパスします。 スクリプト アップグレード モード中にエラーが発生する場合は、Microsoft SQL のカスタマー サービスとサポート (CSS) に詳しいガイダンスを問い合わせることをお勧めします。 詳細については、KB2163980 を参照してください。

警告: このトレース フラグは、スクリプト アップグレード モード中に更新が失敗した場合のトラブルシューティングを目的としたものであり、運用環境での継続的な実行はサポートされていません。 累積的な更新プログラムと Service Pack を完全にインストールするには、データベース アップグレード スクリプトが正常に実行される必要があります。 そうでない場合、SQL Server インスタンスで予期しない問題が発生することがあります。

スコープ: グローバルのみ。
1117 ファイル グループ内のファイルが自動拡張のしきい値を満たすときに、ファイル グループ内のすべてのファイルを拡張します。 このトレース フラグは、すべてのデータベースに影響します。 これは、すべてのデータベースで、ファイルグループ内のすべてのファイルを同量ずつ拡張しても問題がない場合にのみ推奨されます。

注: SQL Server 2016 (13.x) 以降では、この動作は ALTER DATABASE の AUTOGROW_SINGLE_FILE および AUTOGROW_ALL_FILES オプションによって制御されるようになり、トレース フラグ 1117 の効力はなくなりました。 詳細については、「ALTER DATABASE の File および Filegroup オプション (Transact-SQL)」を参照してください。

スコープ: グローバルのみ。
1118 混合エクステントではなく単一エクステント上でページの割り当てを強制することにより、SGAM ページでの競合が減少します。 新しいオブジェクトが作成されると、既定では、最初の 8 ページは異なるエクステント (混合エクステント) から割り当てられます。 後でページを追加する必要が生じる場合、それらのページは同じエクステント (単一エクステント) から割り当てられます。 SGAM ページはこれらの混合エクステントを追跡するのに使用されます。これは、混合ページの割り当てが多く発生した場合に、それらの混合エクステントが即座にボトルネックとなる可能性があるためです。 新しいオブジェクトを作成する際、このトレース フラグにより 8 ページすべてが同じエクステントから割り当てられるため、SGAM ページをスキャンする必要性が最小限に抑えられます。 詳細については、KB328551 を参照してください。

注: SQL Server 2016 (13.x) 以降では、この動作は ALTER DATABASE の SET MIXED_PAGE_ALLOCATION オプションによって制御されるようになり、トレース フラグ 1118 の効力はなくなりました。 詳細については、「ALTER DATABASE SET オプション (Transact-SQL)」を参照してください。

スコープ: グローバルのみ。
1204 デッドロックに関係しているロックのリソースと種類、および影響を受けている現在のコマンドを返します。 デッドロックについて詳しくは、「デッドロック ガイド」をご覧ください。

注: デッドロックの原因となっているワークロード集中型のシステムでは、トレース フラグ 1204 を使用しないようにしてください。 デッドロックを検出する他の手段について詳しくは、「デッドロック ガイド」をご覧ください。

スコープ: グローバルのみ。
1211 メモリの負荷またはロック数に基づいて、ロックのエスカレーションを無効にします。 SQL Server データベース エンジンでは、行ロックまたはページ ロックがテーブル ロックにエスカレーションされることはありません。

このトレース フラグを使用すると、過剰な数のロックが発生する可能性があります。ロック メモリのサイズが十分に大きくなると、クエリに対して追加のロックを割り当てようとする試みは失敗する可能性があります。 これが原因でデータベース エンジンのパフォーマンスが悪化したり、メモリ不足によって 1204 エラー (ロック リソース割り当て不能) が発生する可能性があります。

トレース フラグ 1211 と 1224 の両方を設定した場合、1224 よりも 1211 が優先されます。 ただし、トレース フラグ 1211 では、メモリに負荷がかかっていたとしてもすべての場合でエスカレーションが無効になるので、代わりに 1224 の使用をお勧めします。 これで、多数のロックが使用中でも "ロック不足" エラーを回避することができます。

SQL Server でロックのエスカレーションが原因で発生するブロックの問題を解決する方法の詳細については、KB323630 を参照してください。

スコープ: グローバルまたはセッション。
1222 デッドロックに関係しているリソースとロックの種類、および影響を受けている現在のコマンドを、どの XSD スキーマにも準拠しない XML 形式で返します。 デッドロックについて詳しくは、「デッドロック ガイド」をご覧ください。

注: デッドロックの原因となっているワークロード集中型のシステムでは、トレース フラグ 1222 を使用しないようにしてください。 デッドロックを検出する他の手段について詳しくは、「デッドロック ガイド」をご覧ください。

スコープ: グローバルのみ。
1224 ロック数に基づいてロックのエスカレーションを無効にします。 ただし、メモリに負荷がかかっていてもロックのエスカレーションは有効にできます。 データベース エンジン では、ロック オブジェクトで使用されるメモリ量が次のいずれかの条件を超えた場合に、行ロックまたはページ ロックがテーブル ロック (またはパーティション ロック) にエスカレートされます。

- データベース エンジン で使われるメモリの 40%。 これは、sp_configurelocks パラメーターが 0 に設定されている場合にのみ適用されます。
- sp_configurelocks パラメーターを使って構成されるロック メモリの 40%。 詳細については、「サーバー構成オプション (SQL Server)」を参照してください。

トレース フラグ 1211 と 1224 の両方を設定した場合、1224 よりも 1211 が優先されます。 ただし、トレース フラグ 1211 では、メモリに負荷がかかっていたとしてもすべての場合でエスカレーションが無効になるので、1224 の使用をお勧めします。 これで、多数のロックが使用中でも "ロック不足" エラーを回避することができます。

注: テーブル レベルまたは HoBT レベルの細分性へのロックのエスカレーションは、ALTER TABLE ステートメントの LOCK_ESCALATION オプションで制御することもできます。

SQL Server でロックのエスカレーションが原因で発生するブロックの問題を解決する方法の詳細については、KB323630 を参照してください。

スコープ: グローバルまたはセッション。
1229 CPU の数に関係なく、すべてのロックのパーティション分割を無効にします。 既定では、より大規模なシステムのスケーラビリティ特性を向上させるために、サーバーに 16 個以上の CPU が搭載されている場合は、SQL Server によりロックのパーティション分割が有効にされます。 パーティション分割のロックの詳細については、「トランザクションのロックおよび行のバージョン管理ガイド」を参照してください。

警告: トレース フラグ 1229 を使用すると、スピンロックの競合が発生し、パフォーマンスが低下するおそれがあります。

スコープ: グローバルのみ。
1236 データベース ロックのパーティション分割を有効にします。 詳細については、KB2926217 を参照してください。

注: SQL Server 2012 (11.x) Service Pack 3 および SQL Server 2014 (12.x) Service Pack 1 以降、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 1236 に効力はありません。

スコープ: グローバルのみ。
1237 ALTER PARTITION FUNCTION ステートメントが、既定でデッドロック対象候補になるのではなく、現在のユーザー定義のセッション デッドロック優先順位に従うことができるようにします。 詳細については、KB4025261 を参照してください。

注: SQL Server 2017 (14.x) 以降およびデータベース互換性レベル 140 では、これが既定の動作であり、トレース フラグ 1237 に効力はありません。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
1260 スケジューラ モニターのダンプを無効にします。

スコープ: グローバルのみ。
1448 非同期セカンダリで変更の受信が確認されていない場合でもレプリケーション ログ リーダーが前へ移動できるようにします。 このトレース フラグが有効になっていても、ログ リーダーは常に同期状態が SYNCHRONIZED である同期セカンダリを待機します。 ログ リーダーは、SYNCHRONIZED 状態のセカンダリの確認済み最小ログ シーケンス番号を超えることはありません。 このトレース フラグは、可用性グループ、可用性データベース、またはログ リーダー インスタンスだけでなく、SQL Server のインスタンスにも適用されます。 再起動しなくてもすぐに有効になります。 このトレース フラグをアクティブにするのは、事前でも、非同期セカンダリ レプリカが失敗したときでも構いません。

スコープ: グローバルのみ。
1462 非同期可用性グループのログ ストリーム圧縮を無効にします。 ネットワーク帯域幅を最適化するため、非同期可用性グループではこの機能は既定で有効にされています。 詳細については、「 Tune compression for availability group」(可用性グループの圧縮を調整する) を参照してください。

スコープ: グローバルのみ。
1800 SQL Server Always On 環境およびログ配布環境では、プライマリとセカンダリのレプリカ ログ ファイルで異なるセクター サイズのディスクが使われているときは、SQL Server の最適化を有効にします。 このトレース フラグは、セクター サイズが 512 バイトのディスクにトランザクション ログ ファイルが存在する SQL Server インスタンスでのみ、有効にする必要があります。 セクター サイズが 4 KB のディスクでは、有効にする必要はありません。 詳しくは、KB3009974 を参照してください。

適用対象: SQL Server 2012 (11.x) Service Pack 1 CU 13、SQL Server 2012 (11.x) Service Pack 2 CU 3、SQL Server 2014 (12.x) RTM CU 5 以降のバージョン。

スコープ: グローバルのみ。
1802 データベースのアタッチまたはデタッチの操作中の、ACL の変更および偽装アクセスの検証を無効にします。 これは、データベースをアタッチするときに、エラー 5120 などのアクセス権限エラーが発生する場合に役立ちます。

スコープ: グローバルのみ。
1819 Azure ブロック BLOB にアクセスするときに、URL へのバックアップでプロキシ サーバーを使用できるようにします。 このトレース フラグに加えて、次のいずれかの方法を使用して、サーバーで WinHTTP プロキシ構成を設定する必要があります。

- Windows XP または Windows Server 2003 以前の場合は proxycfg.exe ユーティリティ。
- Windows Vista および Windows Server 2008 以降のバージョンの場合は netsh.exe ユーティリティ。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2301 意思決定支援クエリに固有の高度な意思決定支援の最適化を有効にします。 このオプションは、大規模なデータ セットの意思決定支援処理に適用されます。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2312 データベースの互換性レベルに関係なく、クエリ オプティマイザー カーディナリティ推定モデルを SQL Server 2014 (12.x) 以降のバージョンに設定します。

注: データベース互換レベルが 120 未満の場合、トレース フラグ 2312 を有効にすることにより SQL Server 2014 (12.x) (120) のカーディナリティ推定モデルが使用されます。 詳細については、KB2801413 を参照してください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'FORCE_DEFAULT_CARDINALITY_ESTIMATION'クエリ ヒントを追加します。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2335 max server memory サーバー構成が非常に高く設定されていて、SQL Server で特定のクエリに対して非効率なプランが生成されるようなシナリオでは、SQL Server がクエリ最適化中に固定量のメモリがあるものと想定するようになります。 クエリを実行するために SQL Server によって許可されるメモリが制限されることはありません。 SQL Server 用に構成されたメモリは、やはり、データ キャッシュ、クエリ実行、その他のコンシューマーによって使われます。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2338 UPDATE ステートメントを実行してテーブル内のインデックスを更新するときに、SQL Server でナロー プランが使用されるようにします。 クラスター化インデックス列に対して UPDATE を実行すると、SQL Server によってクラスター化インデックス自体だけでなく、すべての非クラスター化インデックスも更新されます。これは、非クラスター化インデックスにはクラスター キーが含まれているためです。 更新が行われる場合、通常、クラスター化インデックスが更新された後、すべての非クラスター化インデックスが同時に更新されます。 SQL Server は 1 つの行を更新してから、次の行に移動し、すべてが完了するまで繰り返します。 これは、ナロー プランの更新、または行ごとの更新と呼ばれます。 場合によっては、データベース エンジンでワイド プランの更新を実行できることがあります。 このトレース フラグでは、ナロー プランの更新を強制します。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2340 SQL Server は、クエリ プランを生成するときに、最適化された入れ子になったループ結合に対して並べ替え操作 (バッチ ソート) を使わなくなります。 並べ替えが必要とされる可能性は低くても、依然としてカーディナリティまたはコストの見積もりが正しくない可能性があるとクエリ オプティマイザーによって判断された場合、SQL Server では、既定で、フル スキャンまたは Sort を明示的に指定したネステッド ループ結合ではなく、最適化されたネステッド ループ結合を使用できます。 詳細については、KB2009160 を参照してください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'DISABLE_OPTIMIZED_NESTED_LOOP'クエリ ヒントを追加します。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2371 固定の統計の更新しきい値を、線形の統計の更新しきい値に変更します。 詳細については、AUTO_UPDATE_STATISTICS オプションに関する記事を参照してください。

注: SQL Server 2016 (13.x) 以降、およびデータベース互換レベル 130 以上では、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 2371 に効力はありません。

スコープ: グローバルのみ。
2389 昇順キー (ヒストグラム修正) に対して、自動生成されたクイック統計情報を有効にします。 トレース フラグ 2389 を設定し、先頭の統計情報列を昇順としてマークすると、カーディナリティの推定に使われるヒストグラムがクエリのコンパイル時に調整されます。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

注: このトレース フラグは CE バージョン 120 以上には適用されません。 トレース フラグ 4139 を代わりに使ってください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2390 昇順キーまたは不明キー (ヒストグラム修正) に対して、自動生成されたクイック統計情報を有効にします。 トレース フラグ 2390 を設定し、先頭の統計情報列を昇順または不明としてマークすると、カーディナリティの推定に使われるヒストグラムがクエリのコンパイル時に調整されます。 詳細については、KB2801413 を参照してください。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

注: このトレース フラグは CE バージョン 120 以上には適用されません。 トレース フラグ 4139 を代わりに使ってください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2422 Resource Governor の REQUEST_MAX_CPU_TIME_SEC の構成によって設定されている最大時間を超えたときに、SQL Server データベース エンジン が要求を中止できるようにします。 詳細については、KB4038419 を参照してください。

適用対象: SQL Server 2016 (13.x) Service Pack 2、SQL Server 2017 (14.x) CU 3 以降のバージョン。

スコープ: グローバルのみ。
2430 代替ロック クラスのクリーンアップを有効にします。 詳細については、KB2754301 を参照してください。

スコープ: グローバルのみ。
2446 軽量のクエリ実行統計プロファイル インフラストラクチャを使用すると、または実行時間の長いクエリのトラブルシューティング中に sys.dm_exec_query_statistics_xml DMV を実行すると、SQL Server で ParameterRuntimeValue を含むプラン表示 XML フラグメントが生成されます。

適用対象: SQL Server 2017 (14.x) CU 31、SQL Server 2019 (15.x) CU 19、SQL Server 2022 (16.x) 以降のバージョン。

警告: トレース フラグ 2446 は、運用環境で継続的に有効にするためのものではなく、時間を限定したトラブルシューティング目的でのみ使用します。 このトレース フラグを使用すると、sys.dm_exec_query_statistics_xml DMV が呼び出されるかどうかにかかわらず、実行時パラメーター情報を含むプラン表示 XML フラグメントが作成されるため、CPU とメモリのオーバーヘッドが (場合によっては大幅に) 増加します。

注: SQL Server 2022 (16.x) 以降で、データベース レベルでこの処理を実現する方法については、「ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)」の FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION オプションを参照してください。

スコープ: グローバルのみ。
2451 sys.dm_exec_query_plan_stats で最後の実際の実行プランと同等のものが有効になります。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

注: SQL Server 2019 (15.x) 以降、データベース レベルでこれを実現する方法については、「ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)」の LAST_QUERY_PLAN_STATS オプションをご覧ください。

スコープ: グローバルのみ。
2453 十分な数の行が変更されたときに、テーブル変数が再コンパイルをトリガーできるようにします。 詳細については、KB2952444 を参照してください。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2467 どのノードのスレッド割り当てが最も少ないかに基づいて、代替の並列ワーカー スレッド割り当てポリシーを有効にします。 詳細については、「並列クエリ処理」をご覧ください。 max worker threads サーバー オプションの構成に関する情報については、「max worker threads サーバー構成オプションの構成」を参照してください。

注: この代替ポリシーを使用するには、クエリの並列処理の次数 (DOP) が 1 つのノードに収まる必要があります。そうでない場合は、既定のスレッド割り当てポリシーが代わりに使用されます。 このトレース フラグを使用する場合、1 つのノードのスケジューラの数を超える DOP を指定するクエリを実行することはお勧めしません。これは、1 つのノードのスケジューラの数以下の DOP を指定するクエリと競合する可能性があるためです。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバルのみ。
2469 パーティション分割されている列ストア インデックスで、INSERT INTO ... SELECT の代替交換を有効にします。 詳細については、KB3204769 を参照してください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
2528 DBCC CHECKDBDBCC CHECKFILEGROUPDBCC CHECKTABLE によるオブジェクトの並列検査を無効にします。 既定では、並列処理の次数はクエリ プロセッサによって自動的に決定されます。 並列処理の最大限度は並列クエリと同様に構成します。 詳細については、「 max degree of parallelism サーバー構成オプションの構成」を参照してください。

注: 通常、並列 DBCC チェックは有効になっています (既定値)。 DBCC CHECKDB によってチェックされるテーブルまたはテーブルのバッチごとの並列処理は、クエリ プロセッサによって再評価されて自動的に調節されます。

一般的な使用シナリオは、DBCC CHECKDB が完了する前にサーバーの負荷が増加することをシステム管理者が認識し、他のユーザーのワークロードでのコンカレンシーを高めるために、並列処理を手動で減らしたり無効にしたりする場合です。 ただし、DBCC CHECKDB での並列チェックを無効にすると、完了までの時間が長くなる場合があります。

注: TABLOCK オプションを使用して DBCC CHECKDB が実行されていて、並列処理が無効になっている場合は、テーブルがロックされる時間が長くなることがあります。

注: SQL Server 2014 (12.x) Service Pack 2 以降では、DBCC ステートメントの sp_configure の最大並列度構成オプションを、MAXDOP オプションを使ってオーバーライドできます。

スコープ: グローバルまたはセッション。
2544 SQL Server のメモリ ダンプが完全ダンプになります (既定値はミニ ダンプです)。 完全ダンプとは、アクティブなターゲット プロセス メモリの完全なコピーです。 その場合は、すべてのスレッド状態、プロセスに割り当てられたすべてのメモリ、および読み込まれたすべてのモジュールが含まれます。 したがって、フル ダンプのサイズは、SQL Server プロセスで使用されるメモリの量とほぼ同じサイズになります。これは、システム RAM の合計とほぼ同じ大きさになる可能性があります。 単一の SQL Server インスタンス専用の大規模なサーバーの場合、これは、ファイルが数百ギガバイト以上になる可能性があることを意味します。

警告: 完全なメモリ ダンプを生成すると、SQL Server プロセスが長期間 (数秒から数分) 中断され、非常に大きなダンプ ファイルが生成される可能性があります。 これは注意して使用してください。これが必要とされる状況はごくまれです。

詳細については、「Sqldumper.exe ユーティリティを使用して SQL Server でダンプ ファイルを生成する」を参照してください。

スコープ: グローバルのみ。
2549 DBCC CHECKDB コマンドで強制的に、各データベース ファイルが固有のディスク ドライブにあるとしても、複数の物理ファイルを 1 つの論理ファイルとして扱うようにします。 DBCC CHECKDB コマンドによって、すべてのデータベース ファイルについて、固有のディスク ドライブごとに読み取るために、ページの内部リストが作成されます。 このロジックは、各ファイルの物理ファイル名のドライブ文字を基にして固有のディスク ドライブを決定します。

注: 各ファイルが固有の物理ディスクに基づくことがわかっている場合を除いて、このトレース フラグを使用しないでください。

注: このトレース フラグを指定すると、PHYSICAL_ONLY オプションの使用を対象とする DBCC CHECKDB コマンドのパフォーマンスが向上しますが、ユーザーによってはパフォーマンスが向上しないことがあります。 このトレース フラグではディスク I/O のリソース使用率が向上しますが、基になっているディスク リソースのパフォーマンスにより、DBCC CHECKDB コマンドの全体的なパフォーマンスが制限される場合があります。 詳細については、KB2634571 を参照してください。

スコープ: グローバルのみ。
2551 SQL Server のメモリ ダンプがフィルター処理されたダンプになります (既定値はミニ ダンプです)。 これにより、完全メモリの一部が取り込まれます。この場合、SQL Server に関連するメモリ構造の大きな領域は、意図的に除外され、ディスクにシリアル化されません。これは、トラブルシューティングの付加価値 (通常は、データやインデックスのページや一部の内部キャッシュ (Hekaton データ ページやログ プール メモリなど)) が得られないためです。 この結果として生成されるファイルは完全なメモリ ダンプよりは小さくなりますが、ミニ ダンプでは十分でない多くの状況で優先されるオプションとして、その有用性のほとんどが保持されます。 詳細については、「Sqldumper.exe ユーティリティを使用して SQL Server でダンプ ファイルを生成する」を参照してください。

スコープ: グローバルのみ。
2562 データベース内のインデックスの数に関係なく、1 回の "バッチ" で DBCC CHECKDB コマンドを実行します。 既定では、DBCC CHECKDB コマンドは、"バッチ" の概念を使って、生成されるインデックスまたは "ファクト" の数を制限することにより、tempdb リソースを最小限に抑えようとします。 ただしこのトレース フラグは、すべての処理を 1 つのバッチで強制的に実行します。

このトレース フラグの使用による影響の 1 つとして、tempdb に必要な領域が増える可能性があります。 tempdb は、DBCC CHECKDB コマンドによって処理されているユーザー データベースの 5% 以上に拡大する場合があります。

注: このトレース フラグを指定すると、PHYSICAL_ONLY オプションの使用を対象とする DBCC CHECKDB コマンドのパフォーマンスが向上しますが、ユーザーによってはパフォーマンスが向上しないことがあります。 このトレース フラグではディスク I/O のリソース使用率が向上しますが、基になっているディスク リソースのパフォーマンスにより、DBCC CHECKDB コマンドの全体的なパフォーマンスが制限される場合があります。 詳細については、KB2634571 を参照してください。

スコープ: グローバルまたはセッション。
2566 DATA_PURITY オプションが指定されていない場合は、データ純粋性チェックなしで DBCC CHECKDB コマンドを実行します。

注: 列の値の整合性チェックは既定で有効になっているため、DATA_PURITY オプションを指定する必要はありません。 以前のバージョンの SQL Server からアップグレードしたデータベースの場合は、データベースで DBCC CHECKDB WITH DATA_PURITY が少なくとも 1 回はエラーなしで実行されるまで、列の値のチェックは既定では有効になりません。 その後、DBCC CHECKDB により既定で列の値の整合性がチェックされます。 詳細については、アーカイブ バージョン KB945770 を参照してください。

スコープ: グローバルのみ。
2592 Windows 用のデバッグ ツールがインストールされるときに、スタック ダンプでのシンボルの解決を有効にします。 たとえば、トレース フラグ 3656 を使用するには、トレース フラグ 2592 が有効になっている必要があります。

警告: これはデバッグ トレース フラグで、運用環境での使用には適していません。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

スコープ: グローバル、セッション。
2610 SQLDumper および DBCC STACKDUMP を使用して、メモリ ダンプの圧縮と高速なダンプ生成を有効にします。 詳細については、「Sqldumper.exe ユーティリティを使用して SQL Server でダンプ ファイルを生成する」を参照してください。

適用対象: SQL Server 2022 (16.x) CU 8、SQL Server 2019 (15.x) CU 23 以降のバージョン。

スコープ: グローバル、セッション。
3023 BACKUP コマンドの既定値として CHECKSUM オプションを有効にします。

注: SQL Server 2014 (12.x) 以降では、この動作は backup checksum default 構成オプションを設定することによって制御されます。 詳しくは、「バックアップ チェックサムの既定」と「サーバー構成オプション (SQL Server)」をご覧ください。

スコープ: グローバル、セッション。
3042 既定のバックアップ圧縮の事前割り当てアルゴリズムをバイパスして、最終的なサイズに到達するまで、必要な場合にのみバックアップ ファイルが拡張されるようにします。 このトレース フラグは、圧縮されたバックアップに実際に必要なサイズだけを割り当てることによって、容量を節約する必要がある場合に便利です。 このトレース フラグを使用すると、わずかなパフォーマンスの低下 (バックアップ操作の期間が長くなる可能性) が発生することがあります。 事前割り当てアルゴリズムの詳細については、「バックアップ圧縮 (SQL Server)」を参照してください。

スコープ: グローバルのみ。
3051 Azure Storage のページ BLOB のみで SQL Server のログの URL へのバックアップを有効にします。 ログ記録は、特定のエラー ログ ファイルに記述されます。 詳しくは、「SQL Server Backup to URL に関するベスト プラクティスとトラブルシューティング」をご覧ください。

スコープ: グローバルのみ。
3205 既定では、テープ ドライブでハードウェア圧縮がサポートされている場合、DUMP または BACKUP ステートメントではハードウェア圧縮が行われます。 このトレース フラグを使用すると、テープ デバイスのハードウェア圧縮を無効にできます。 これは、圧縮がサポートされていない他のサイトやテープ ドライブとの間でテープを交換する場合に便利です。

スコープ: グローバルまたはセッション。
3226 既定では、バックアップ操作が成功するたびに、 SQL Server エラー ログおよびシステム イベント ログにエントリが 1 つ追加されます。 頻度の高いログ バックアップを作成すると、これらの成功メッセージがすぐに蓄積され、他のメッセージを探すのが困難になるほどエラー ログが大きくなることがあります。

このトレース フラグを使用すると、これらのログ エントリを除外できます。 この機能は、頻度の高いログ バックアップを実行している場合やスクリプトがこれらのエントリに依存していない場合に役立ちます。

スコープ: グローバルのみ。
3427 SQL Server 2014 (12.x) よりも多く CPU が消費される、SQL Server 2016 (13.x) での多数の連続するトランザクションでの一時テーブルへのデータの挿入の問題の修正プログラムを有効にします。 詳細については、KB3216543 を参照してください。

適用対象: SQL Server 2016 (13.x) Service Pack 1 CU 2 から SQL Server 2016 (13.x) Service Pack 2 CU 2。 SQL Server 2016 (13.x) Service Pack 2 CU 3 および SQL Server 2017 (14.x) 以降では、このトレース フラグによる影響はありません。

スコープ: グローバルのみ。
3428 セカンダリ レプリカ上の Always On の再実行スレッドが、T-SQL クエリによってブロックされ、同期に遅延が発生する場合があります。 このトレース フラグでは、ロック タイムアウトを 60 秒に設定し、このようなブロック クエリを終了させます。 再実行スレッドの遅延の詳細については、「リソースの競合のために再実行スレッドが遅れる」および Always On 読み取り可能セカンダリ レプリカでの再実行キューの増大 (データの待機時間の問題) のトラブルシューティングに関する説明を参照してください。

警告: クエリが終了する可能性があるため、運用環境にデプロイする前に、必ずこのオプションをテストして理解してください。

適用対象: SQL Server 2019 (15.x)

スコープ: グローバルのみ。
3459 並列再実行を無効にします。 詳細については、KB3200975KB4101554、ブログ記事「可用性グループのセカンダリ レプリカの再実行モデルとパフォーマンス」を参照してください。

適用対象: SQL Server 2016 (13.x)、SQL Server 2017 (14.x) 以降のバージョン。

スコープ: グローバルのみ。
3468 tempdb間接チェックポイントを無効にします。

適用対象: SQL Server 2016 (13.x) Service Pack 1 CU 5、SQL Server 2017 (14.x) CU 1 以降のバージョン。

スコープ: グローバルのみ。
3502 チェックポイント状態の変更をエラー ログに送信するのに使用されます。

適用対象: SQL Server 2012 (11.x) 以降のバージョン。

スコープ: グローバルまたはセッション。
3605 トレース メッセージを SQL Server のエラー ログにリダイレクトします。 たとえば、トレース フラグ 205 と 8721 を使用するには、トレース フラグ 3605 が有効になっている必要があります。

警告: これはデバッグ トレース フラグであり、運用環境で継続的に有効にするためのものではありません。

スコープ: グローバルまたはセッション。
3608 SQL Server で、master データベース以外のすべてのデータベースを自動的に開始および復旧しないようにします。 tempdb を必要とする操作が開始されると、model が復旧され、tempdb が作成されます。 他のデータベースはアクセス時に開始および復旧されます。 スナップショット分離や READ COMMITTED スナップショットなど、一部の機能を使用できない場合があります。 システム データベースの移動ユーザー データベースの移動の場合に使用します。

注: 通常の運用中は使用しないでください。

スコープ: グローバルのみ。
3625 '******'を使用して一部のエラー メッセージのパラメーターをマスクすることによって、sysadmin 固定サーバー ロールのメンバーではないユーザーに返される情報の量を制限します。 これは、機密情報の公開を防ぐために役立ちます。

スコープ: グローバルのみ。
3656 Windows 用のデバッグ ツールがインストールされるときに、スタック ダンプでのシンボルの解決を有効にします。

警告: これはデバッグ トレース フラグで、運用環境での使用には適していません。

注: SQL Server 2019 (15.x) 以降、シンボルの解決を有効にするには、トレース フラグ 3656 と共にトレース フラグ 2592 を有効にする必要があります。

スコープ: グローバル、セッション。
3880 再開可能なインデックスの状態を確認するタイマー タスクを無効にします。

適用対象: SQL Server 2017 (14.x) 以降のバージョン。ハイ パフォーマンスのワークロードがあるハイエンド システムを対象としています。

スコープ: グローバルまたはセッション。
3924 SPID=-2 を使用して孤立した DTC トランザクションの自動削除を有効にします。これは、一部のサード パーティ製トランザクション モニターで問題になることがあります。 詳細については、KB4519668 および KB4511816 を参照してください。

スコープ: グローバルのみ。
3972 ページ空き領域 (PFS) の同時更新機能を無効にします。 PFS の同時更新について詳しくは、「インテリジェントなパフォーマンス」を参照してください。 このトレース フラグが役立つ問題については、「データベース スナップショットを使用したセカンダリ可用性データベースの復旧中に、非生成スケジューラ ダンプが発生する」 (KB5007794) を参照してください。

スコープ: グローバルのみ。
4022 SQL Server を開始する際のストアド プロシージャの自動実行を無効にします。 スタートアップ時のストアド プロシージャの自動実行について詳しくは、sp_procoption に関する記事を参照してください。

スコープ: グローバルのみ。
4043 PolyBase 外部テーブルにセキュリティ ポリシーを適用し、SQL Server 2019 (15.x) で行レベルセキュリティ (RLS) を使用するときに発生するエラーを修正します。 "セキュリティ述語を追加できるのは、ユーザー テーブルとスキーマ バインド ビューに対してのみです" のようなエラー メッセージが表示されます。詳細については、KB4552159 を参照してください。

スコープ: グローバルまたはセッション。
4136 OPTION(RECOMPILE)WITH RECOMPILE または OPTIMIZE FOR <value> を使用する場合を除いて、パラメーター スニッフィングを無効にします。 詳細については、KB980653 を参照してください。

SQL Server 2016 (13.x) 以降で、データベース レベルでこの処理を実現する方法については、「ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)」の PARAMETER_SNIFFING オプションを参照してください。

クエリ レベルで同じ結果を達成するには、OPTIMIZE FOR UNKNOWN クエリ ヒントを追加します。 OPTIMIZE FOR UNKNOWN ヒントではパラメーター スニッフィングのメカニズムは無効にされませんが、意図した同じ結果を達成するために効果的にバイパスされます。
SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するもう 1 つのオプションとして、このトレース フラグを使用する代わりに、USE HINT 'DISABLE_PARAMETER_SNIFFING'クエリ ヒントを追加することもできます。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバルまたはセッション。
4137 SQL Server 2012 (11.x) 以前のクエリ オプティマイザー カーディナリティ推定 (CE) モデル (70) において、独立性ではなく部分的な相関関係を考慮するためにフィルターの AND 述語を見積るときに、最小限の選択度を使用して SQL Server にプランを生成させます。 詳細については、KB2658214 を参照してください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、CE 70 を使用しているときにこのトレース フラグを使用する代わりに、USE HINT 'ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES'クエリ ヒントを追加します。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

注: このトレース フラグは CE バージョン 120 以上には適用されません。 トレース フラグ 9471 を代わりに使ってください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
4138 キーワード TOP、OPTION (FAST N)、IN、または EXISTS を含むクエリで行の目標の調整を使用しないプランを SQL Server に生成させます。 詳細については、KB2667211 を参照してください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'DISABLE_OPTIMIZER_ROWGOAL'クエリ ヒントを追加します。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
4139 キー列の状態に関係なく、自動生成されるクイック統計情報 (ヒストグラム修正) を有効にします。 トレース フラグ 4139 を設定すると、先頭の統計情報列の状態 (昇順、降順、または定常) に関係なく、カーディナリティの推定に使われるヒストグラムがクエリのコンパイル時に調整されます。 詳細については、KB2952101 を参照してください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS'クエリ ヒントを追加します。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

注: このトレース フラグは CE バージョン 70 には適用されません。 代わりにトレース フラグ 2389 および 2390 を使ってください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
4199 SQL Server の累積的な更新プログラムと Service Pack でリリースされたクエリ オプティマイザー (QO) の修正プログラムを有効にします。

SQL Server の以前のリリースで行われた QO の変更は、特定の製品リリースの最新のデータベース互換レベルでは、トレース フラグ 4199 を有効にしなくても、既定で有効になります。 詳細については、KB974006 を参照してください。

すべての以前のデータベース互換レベルからの QO の変更:
- トレース フラグ 4199 が有効になっている場合は、以前の全データベース互換レベルからのクエリ オプティマイザーの変更も有効になります。
- トレース フラグ 4199 が無効になっているか、設定されていない場合、クエリ オプティマイザーの変更は互換レベル 130 以上で有効になります。 互換レベルが 130 未満の場合、クエリ オプティマイザーの変更は無効になります。

DE バージョンの RTM 後の QO の変更:
- トレース フラグ 4199 が有効になっている場合、RTM 後のデータベース エンジン バージョンに対してクエリ オプティマイザーの変更が有効になります。
- トレース フラグ 4199 が無効になっているか、設定されていない場合、クエリ オプティマイザーの変更は RTM 後のデータベース エンジン バージョンに対して無効になります。

SQL Server 2016 (13.x) 以降で、データベース レベルでこれを行う方法については、「ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)」の QUERY_OPTIMIZER_HOTFIXES オプションを参照してください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'ENABLE_QUERY_OPTIMIZER_HOTFIXES'クエリ ヒントを追加します。

重要: 間違った結果やアクセス違反エラーに対処するクエリ オプティマイザーの修正プログラムは、トレース フラグ 4199 では有効になりません。 これらの修正プログラムはオプションとは見なされず、更新プログラム パッケージがインストールされると、既定で有効になります。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
4610 キャッシュ エントリを格納するハッシュ テーブルのサイズを 8 倍に増やします。 トレース フラグ 4618 と共に使うと、TokenAndPermUserStore キャッシュ ストアのエントリの数が 8,192 に増えます。 TokenAndPermUserStore のキャッシュ サイズの問題をトラブルシューティングする方法について詳しくは、「SQL Server で TokenAndPermUserStore のキャッシュ サイズが大きくなるとクエリが完了するまでに時間がかかる」を参照してください。

スコープ: グローバルのみ。
4616 アプリケーション ロールに対して、サーバー レベルのメタデータを参照可能にします。 SQL Server では、アプリケーション ロールはサーバーレベルのプリンシパルに関連付けられていないため、所有するデータベース外のメタデータにはアクセスできません。 これは、以前のバージョンの SQL Serverの動作から変更されています。 このグローバル フラグを設定すると、新しい制限は無効になり、アプリケーション ロールはサーバーレベルのメタデータにアクセスできるようになります。

スコープ: グローバルのみ。
4618 TokenAndPermUserStore キャッシュ ストアのエントリの数を、1,024 に制限します。 トレース フラグ 4610 と共に使うと、TokenAndPermUserStore キャッシュ ストアのエントリの数が 8,192 に増えます。 TokenAndPermUserStore のキャッシュ サイズの問題をトラブルシューティングする方法について詳しくは、「SQL Server で TokenAndPermUserStore のキャッシュ サイズが大きくなるとクエリが完了するまでに時間がかかる」を参照してください。

スコープ: グローバルのみ。
4621 TokenAndPermUserStore キャッシュ ストア内のエントリの数を、ユーザーがレジストリ キーで指定した数に制限します。 詳細については、KB959823 を参照してください。

スコープ: グローバルのみ。
4631 暗号化キーを生成するパスワードをハッシュするために、SHA2_256/AES256 を無効にします。 SQL Server 2017 (14.x) 以降では、SHA1 の代わりに SHA2 が使用されます。 つまり、SQL Server 2017 (14.x) のインストールで、SQL Server 2016 (13.x) によって暗号化された項目を暗号化解除するには、2 台のサーバーでの同じ対称キーの作成に関する記事で説明されているように、追加の手順が必要になる場合があります。 詳細については、KB4053407 を参照してください。

適用対象: SQL Server 2017 (14.x) 以降のバージョン。

スコープ: グローバルのみ。
5004 TDE 暗号化スキャンを一時停止し、暗号化スキャン ワーカーを何もしないで終了させます。 データベースは、暗号化中状態 (暗号化が進行中) のままになります。 再暗号化スキャンを再開するには、トレース フラグ 5004 を無効にして、ALTER DATABASE <データベース名> SET ENCRYPTION ON を実行します。

スコープ: グローバルのみ。
6408 推定実行プランの表示を有効にして、PolyBase プッシュダウン計算のリモート クエリ プランを表示します。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。 詳細については、「外部プッシュダウンが発生した場合の確認方法」を参照してください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
6498 使用可能なメモリが十分にある場合、複数の大きなクエリ コンパイルが大規模ゲートウェイにアクセスできるようにします。 このトレース フラグは、受信クエリをコンパイルするときのメモリ使用量の制御に使用できるため、同時発生した大きなクエリのコンパイルの待機を回避できます。 SQL Server ターゲット メモリの 80% が基準であり、25 GB のメモリごとに 1 つの大きなクエリ コンパイルが許可されます。 詳細については、KB3024815 を参照してください。

注: SQL Server 2014 (12.x) Service Pack 2 および SQL Server 2016 (13.x) 以降、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 6498 に効力はありません。

スコープ: グローバルのみ。
6527 CLR 統合でメモリ不足例外が最初に発生した場合のメモリ ダンプの生成を無効にします。 既定では、SQL Server は CLR でメモリ不足の例外が初めて発生したときに小さいメモリ ダンプを生成します。 トレース フラグの動作は次のとおりです。

- スタートアップ トレース フラグとして使用される場合、メモリ ダンプは生成されません。 ただし、その他のトレース フラグが使用されると、メモリ ダンプが生成される場合があります。
- 実行中のサーバーでこのトレース フラグを有効にすると、その時点からメモリ ダンプは自動的に生成されなくなります。 ただし、CLR のメモリ不足例外のためにメモリ ダンプが既に生成されている場合は、このトレース フラグの効果はありません。

スコープ: グローバルのみ。
6532 SQL Server 2012 (11.x) および SQL Server 2014 (12.x) の空間データ型で、クエリ操作のパフォーマンスを向上できるようにします。 パフォーマンスがどの程度向上するかは、構成、クエリの種類、およびオブジェクトによって異なります。 詳細については、KB3107399 を参照してください。

注: SQL Server 2016 (13.x) 以降では、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 6532 に効力はありません。

スコープ: グローバル、セッション。
6533 SQL Server 2012 (11.x) および SQL Server 2014 (12.x) の空間データ型で、クエリ操作のパフォーマンスを向上できるようにします。 パフォーマンスがどの程度向上するかは、構成、クエリの種類、およびオブジェクトによって異なります。 詳細については、KB3107399 を参照してください。

注: SQL Server 2016 (13.x) 以降では、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 6533 に効力はありません。

スコープ: グローバル、セッション。
6534 SQL Server 2012 (11.x) 以降の空間データ型で、クエリ操作のパフォーマンスを向上できるようにします。 パフォーマンスがどの程度向上するかは、構成、クエリの種類、およびオブジェクトによって異なります。 詳細については、KB3107399 を参照してください。

スコープ: グローバルのみ。
6545 CLR strict security を有効にします。 詳細については、KB4018930 を参照してください。

適用対象: SQL Server 2012 (11.x) Service Pack 3 CU 10、SQL Server 2014 (12.x) Service Pack 2 CU 6、SQL Server 2016 (13.x) RTM CU 7、SQL Server 2016 (13.x) Service Pack 1 CU 4 以降のバージョン。 SQL Server 2017 (14.x) 以降、この機能は既定で有効になり、トレース フラグ 6545 は無効になります。

スコープ: グローバルのみ。
6559 既定の CLR スレッド モデル ロジックを変更する修正プログラムを有効にします。 詳細については、KB4517771 を参照してください。

適用対象: SQL Server 2016 (13.x) Service Pack 2 CU 10、SQL Server 2017 (14.x) CU 18、SQL Server 2019 (15.x) CU 1 以降のバージョン。

スコープ: グローバルのみ。
7117 複数の入れ子になった挿入がある場合に発生する可能性があるアサーション エラーを軽減します。 このトレース フラグを使用すると、中止されたトランザクションの一部である可能性のある行に対して PVS ビットが設定されている場合、永続バージョン ストア (PVS) クリーナー スレッドを続行できます。 このトレース フラグを使用すると、PVS クリーナーがビットを無視し、クリーニング操作を続行できます。

適用対象: SQL Server 2022 (16.x) CU 9 以降のバージョン。

スコープ: グローバルのみ。
7314 有効桁数/小数点以下桁数が不明な NUMBER 値を、OLE DB プロバイダーで倍精度の値として強制的に処理します。 詳細については、KB3051993 を参照してください。

スコープ: グローバル、セッション。
7412 軽量のクエリ実行統計プロファイリング インフラストラクチャを有効にします。 詳細については、KB3170113 を参照してください。

適用対象: SQL Server 2016 (13.x) Service Pack 1 以降のバージョン。 SQL Server 2019 (15.x) 以降、軽量プロファイリングが既定で有効になるため、このトレース フラグには効果はありません。

スコープ: グローバルのみ。
7470 並べ替え操作に必要なメモリ許可の追加の計算を有効にします。 詳細については、KB3088480 を参照してください。

適用対象: SQL Server 2012 (11.x) Service Pack 2 CU 8、SQL Server 2014 (12.x) RTM CU 10、SQL Server 2014 (12.x) Service Pack 1 CU 3 以降のバージョン。

警告: トレース フラグ 7470 を使用すると、並べ替え演算子を使用するクエリのメモリ要件が増え、他の同時実行クエリのメモリの可用性に影響を与える可能性があります。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
7471 1 つのテーブルの異なる統計情報に対して複数の UPDATE STATISTICS を同時に実行できるようにします。 詳細については、KB3156157 を参照してください。

適用対象: SQL Server 2014 (12.x) Service Pack 1 以降のバージョン。

スコープ: グローバルのみ。
7745 データベースのシャットダウン時にクエリ ストアがデータをディスクにフラッシュしないように強制します。

注: このトレース フラグを使うと、以前にディスクにフラッシュされていないクエリ ストアのデータが、シャットダウン時に失われるおそれがあります。 SQL Server のシャットダウンでは、このトレース フラグの代わりに SHUTDOWN WITH NOWAIT コマンドを使って、即時シャットダウンを強制できます。

スコープ: グローバルのみ。
7752 クエリ ストアの非同期読み込みを有効にします。

注: クエリ ストアの同期読み込み (データベース復旧時の既定の動作) に関連して、SQL Server で多数の QDS_LOADDB 待機が発生している場合は、このトレース フラグを使います。

注: SQL Server 2019 (15.x) 以降では、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 7752 に効力はありません。

スコープ: グローバルのみ。
7806 SQL Server Expressで専用管理者接続 (DAC) を有効にします。 既定では、SQL Server Express で予約されている DAC リソースはありません。 詳細については、「 データベース管理者用の診断接続」を参照してください。

スコープ: グローバルのみ。
8011 リソース モニターのリング バッファーを無効にします。 このリング バッファーの診断情報を使用して、メモリ不足の状態を診断できます。 そのため、このトレース フラグを使用すると、SQL Server に関するパフォーマンスや機能の問題を診断するために使用できる情報が大幅に減少します。 トレース フラグ 8011 は、常にサーバー全体に適用され、グローバル スコープが設定されます。 トレース フラグ 8011 は、起動時またはユーザー セッションで有効にすることができます。

スコープ: グローバルのみ。
8012 スケジューラのリング バッファーを無効にします。 次のいずれかのイベントが発生するたびに、SQL Server はスケジュール リング バッファーにイベントを記録します。
- スケジューラがコンテキストを別のワーカーに切り替える
- ワーカーが中断された
- ワーカーが再開された
- ワーカーがプリエンプティブ モードまたは非プリエンプティブ モードに入る

このリング バッファーの診断情報を使用して、スケジューリングの問題を分析できます。 たとえば、このリング バッファーの情報を使用して、SQL Server が応答を停止したときの問題をトラブルシューティングできます。 トレース フラグ 8012 は、スケジューラのイベントの記録を無効にします。 トレース フラグ 8012 は、起動時にのみ有効にすることができます。

警告: このトレース フラグを使用すると、SQL Server に関するパフォーマンスや機能の問題を診断するために使用できる情報が大幅に減少します。

スコープ: グローバルのみ。
8015 自動検出と NUMA の設定を無効にします。 詳細については、KB2813214 を参照してください。

スコープ: グローバルのみ。
8018 例外リング バッファーを無効にします。 例外リング バッファーには、ノードで発生した最後の 256 例外が記録されます。 各レコードには、エラーに関する情報が含まれており、スタック トレースが含まれています。 例外が発生すると、レコードがリング バッファーに追加されます。 トレース フラグ 8018 は、リング バッファーの作成を無効にします。例外情報は何も記録されません。 トレース フラグ 8019 は、レコードの作成中にスタック コレクションを無効にします。

警告: このトレース フラグを使用すると、SQL Server に関するパフォーマンスや機能の問題を診断するために使用できる情報が大幅に減少します。

スコープ: グローバルのみ。
8019 例外リング バッファーのスタック コレクションを無効にします。 トレース フラグ 8018 が有効になっている場合、トレース フラグ 8019 の効果はありません。

警告: このトレース フラグを使用すると、SQL Server に関するパフォーマンスや機能の問題を診断するために使用できる情報が大幅に減少します。

スコープ: グローバルのみ。
8020 ワーキング セットの監視を無効にします。 SQL Server はオペレーティング システムからグローバル メモリ状態のシグナルを受信するときに、ワーキング セットのサイズを使用します。 トレース フラグ 8020 は、SQL Server がグローバル メモリ状態のシグナルを解釈するときに、ワーキング セット メモリのサイズを考慮しません。 このトレース フラグを誤って使用すると、大量のページングが発生してパフォーマンスが低下する可能性があります。 そのため、トレース フラグ 8020 を有効にする前に Microsoft サポートにお問い合わせください。 トレース フラグ 8020 は、起動時にのみ有効にすることができます。

スコープ: グローバルのみ。
8032 キャッシュ制限パラメーターを SQL Server 2005 (9.x) の設定に戻します。これにより、一般に、より大きいキャッシュに対応できるようになります。 この設定は、頻繁に再利用されるキャッシュ エントリがキャッシュに収まらない場合や、サーバー構成オプション [アドホック ワークロードの最適化] でプラン キャッシュの問題を解決できない場合に使用します。

警告: トレース フラグ 8032 を使用した場合、キャッシュが大きいために他のメモリ コンシューマー (バッファー プールなど) で利用できるメモリが少なくなると、パフォーマンスが低下することがあります。

スコープ: グローバルのみ。
8048 NUMA パーティション分割のメモリ オブジェクトを CPU パーティション分割に変換します。 詳細については、KB2809338 を参照してください。

注: SQL Server 2014 (12.x) Service Pack 2 および SQL Server 2016 (13.x) 以降では、この動作は動的であり、データベース エンジンによって制御されます。

スコープ: グローバルのみ。
8075 64 ビット SQL Server 2012 (11.x) または SQL Server 2014 (12.x) でメモリ ページの割り当てエラーが発生したときに、VAS の断片化を減らします。 詳細については、KB3074434 を参照してください。

適用対象: SQL Server 2012 (11.x)、SQL Server 2014 (12.x) RTM CU 10、SQL Server 2014 (12.x) Service Pack 1 CU 3。 SQL Server 2016 (13.x) 以降では、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 8075 に効力はありません。

スコープ: グローバルのみ。
8079 SQL Server 2014 (12.x) Service Pack 2 がハードウェア レイアウトを調査し、NUMA ノードあたり 8 個以上の CPU をレポートしたシステムにソフト NUMA を自動的に構成できるようにします。 ソフト NUMA の自動的な動作は、同時マルチスレッド (SMT/論理プロセッサ) を認識しています。 パーティション分割と追加ノードの作成により、リスナーの数の増加、スケーリング、およびネットワークと暗号化機能の向上により、バックグラウンド処理が拡張されます。

適用対象: SQL Server 2014 (12.x) Service Pack 2。 SQL Server 2016 (13.x) 以降では、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 8079 に効力はありません。

スコープ: グローバルのみ。
8086 メモリ コミットの NUMA 局所性チェックを無効にします。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

スコープ: グローバル。
8089 SQL Server 2017 (14.x) CU 16 では、フィルター処理されたメモリ ダンプのサイズを小さくするためのビットマップ フィルターを有効にすることができます。 SQL Server によってビットマップが割り当てられ、フィルター処理されたダンプから除外する対象のメモリ ページが追跡されます。 Sqldumper.exe でビットマップが読み取られ、ページがフィルターで除外されます。他のメモリ マネージャー メタデータの読み取りは必要ありません。

適用対象: SQL Server 2017 (14.x) CU 16 から CU 19 のみ。 SQL Server 2017 (14.x) CU 20 以降では、ビットマップ フィルターは既定で有効になっています。 トレース フラグ 8089 は適用されなくなり、有効になっている場合は無視されます。 ビットマップ フィルターは、トレース フラグ 8095 を使用して無効にすることができます。 詳細については、KB4488943 を参照してください。

スコープ: グローバルのみ。
8095 フィルター処理されたメモリ ダンプのビットマップ フィルターを無効にします。 SQL Server によってビットマップが割り当てられ、フィルター処理されたダンプから除外する対象のメモリ ページが追跡されます。 Sqldumper.exe でビットマップが読み取られ、ページがフィルターで除外されます。他のメモリ マネージャー メタデータの読み取りは必要ありません。

適用対象: ビットマップ フィルターが既定で有効になっているビルド: SQL Server 2016 (13.x) CU 13 以降のバージョン、SQL Server 2017 (14.x) CU 20 以降のバージョン、SQL Server 2019 (15.x)。

スコープ: グローバルのみ。
8099 多数の同時ユーザーにサービスを提供する SQL Server 2019 (15.x) を実行するハイエンド システムで、スピンロックの競合修正プログラムを有効にします。

適用対象: SQL Server 2019 (15.x) CU 2 と CU 3 のみ。 SQL Server 2019 (15.x) CU 4 以降では、この動作は既定で有効になります。 スピンロックの競合について詳しくは、トレース フラグ 8101 と、KB4538688 に関するページを参照してください。

適用対象: SQL Server 2019 (15.x)

スコープ: グローバルのみ。
8101 多数の CPU と多数同時使用ユーザーを持つ Intel Skylake プロセッサなどの最新のハードウェアでの高い CPU 使用率を修正できるようにします。 スピンロックの競合を診断するには、「SQL Server でのスピンロックの競合を診断および解決する」ホワイトペーパーを参照してください。

適用対象: CU 8 以降の SQL Server 2019 (15.x) のみ。CU 14 と CU 16 ではさらなる機能強化が導入されています。

詳細については、KB4538688 を参照してください。

適用対象: SQL Server 2019 (15.x)

スコープ: グローバルのみ。
8121 SQL Server が、メモリ セキュリティ ポリシー設定内のロック ページを使用してメモリ モデルの最大サーバー メモリを超えるメモリをコミットする場合に発生する、システム全体のメモリ不足の問題を修正します。 このトレース フラグは、SQL Server のメモリ消費量を削減するためにリソース モニター システム スレッドに必要なメモリを提供します。 詳しくは、KB5008996 を参照してください。

スコープ: グローバルのみ。
8142 このトレース フラグは、特定のスピンロックで保護されたリストを CPU ごとにパーティション分割し、最大 64 パーティションまで分割します。 これは、高い CPU 使用率で SOS_BLOCKALLOCPARTIALLIST スピンロックの競合が発生している大容量メモリ マシンでのみ使用する必要があります。 トレース フラグ 8145 も参照してください。 詳しくは、KB5025808 を参照してください。

適用対象: SQL Server 2019 (15.x) CU 21 以降のバージョン。

スコープ: グローバルのみ。
8145 トレース フラグ 8142 で有効になっているパーティション分割を、CPU 単位ではなくソフト NUMA ノードごとに変更します。 これを有効にするには、トレース フラグ 8142 も有効にする必要があります。 詳しくは、KB5025808 を参照してください。

適用対象: SQL Server 2019 (15.x) CU 21 以降のバージョン。

スコープ: グローバルのみ。
8207 トランザクション レプリケーションと CDC に対して単一の更新を有効にします。 サブスクライバーへの更新は、DELETE と INSERT のペアとしてレプリケートできます。 これは、UPDATE トリガーの起動など、ビジネス ルールを満たさない場合があります。 トレース フラグ 8207 を使用すると、1 行 (シングルトンの更新) のみに影響する一意の列への更新は、DELETE または INSERT のペアとしてではなく、UPDATE としてレプリケートされます。 一意の制約が存在する列に更新が影響を与える場合、または更新が複数行に影響する場合、更新は引き続き DELETE または INSERT のペアとしてレプリケートされます。 詳細については、アーカイブ バージョン KB302341 を参照してください。

スコープ: グローバルのみ。
8284 テーブルでロックエスカレーションが繰り返されると、期限切れの変更追跡メタデータのクリーンアップで競合と速度低下が発生する手動クリーンアップの問題を修正しました。

注: このトレース フラグは、SQL Server 2019 (15.x) CU 21 以降のバージョンに適用されます。

スコープ: グローバルのみ。
8285 特定の状況下でのダンプの問題を防ぐために、スナップショット分離が有効になっているデータベースで Change Tracking を有効にした場合、アサーション エラー(式: m_versionStatus.IsVisible ())を例外に変換します。

適用対象: SQL Server 2022 (16.x) CU 6、SQL Server 2019 (15.x) CU 21 以降のバージョン。

スコープ: グローバルのみ。
8286 クリーンアップ クエリでの FORCE ORDER ヒントの使用を強制し、パフォーマンスを向上させます。 FORCESEEK ヒントを使う TF 8287 と共に使用できます。 詳しくは、KB5022375 を参照してください。

適用対象: SQL Server 2022 (16.x) CU 1 以降のバージョン。

スコープ: グローバルのみ。
8287 クリーンアップ クエリでの FORCESEEK ヒントの使用を強制し、パフォーマンスを向上させます。 FORCE ORDER ヒントを使う TF 8286 と共に使用できます。 詳しくは、KB5022375 を参照してください。

適用対象: SQL Server 2022 (16.x) CU 1 以降のバージョン。

スコープ: グローバルのみ。
8290 このトレース フラグが有効になると、Change Tracking (CT) の自動クリーンアップ プロセスによって、無効なクリーンアップ バージョンが保持期間に基づいてクリーンアップ バージョンにリセットされます。 このトレース フラグを有効にした後、自動クリーンアップ プロセスを実行する必要があります。 詳細については、KB4538365 を参照してください。

適用対象: SQL Server 2017 (14.x) CU 19、SQL Server 2019 (15.x) CU 4、SQL Server 2022 (16.x) 以降のバージョン。

スコープ: グローバルまたはセッション。
8558 RCSI 分離レベルが有効になっていると、xa_commit で成功が返されても、しばらくは DTC トランザクションを使用して変更されたテーブルの最新データをトランザクションで表示できないというエッジ ケースが発生しないようにする修正を有効にします。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

適用対象: SQL Server 2019 (15.x) CU 18、SQL Server 2022 (16.x) 以降のバージョン。

スコープ: グローバルのみ。
8721 統計の自動更新を実行するときに、エラー ログに報告します。 詳細については、アーカイブ バージョン KB195565 を参照してください。

注: このトレース フラグでは、トレース フラグ 3605 が有効になっている必要があります。

スコープ: グローバルのみ。
8744 入れ子になったループ演算子のプリフェッチを無効にします。

警告: このトレース フラグを誤って使用すると、入れ子になったループ演算子を含むプランを SQL Server で実行するときに、追加の物理的な読み取りが発生する可能性があります。

スコープ: グローバル、セッション。
8790 UPDATE ステートメントを実行してテーブル内のインデックスを更新するときに、SQL Server でワイド クエリ プランが使用されるようにします。 クラスター化インデックス列に対して UPDATE を実行すると、SQL Server によってクラスター化インデックス自体だけでなく、すべての非クラスター化インデックスも更新されます。これは、非クラスター化インデックスにはクラスター インデックス キーが含まれているためです。 パフォーマンスを最適化し、ランダムな I/O を減らすために、SQL Server でメモリ内のすべての非クラスター化インデックス データを並べ替えてから、すべてのインデックスを順序どおりに更新することができます。 これはワイド プラン (またはインデックスごとの更新) と呼ばれ、このトレース フラグを使って強制できます

範囲: グローバル、セッション、クエリ (QUERYTRACEON)。
8902 ハイ パフォーマンスのワークロードを持つハイエンド システムの IO 操作のロックされたページを無効にします。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

スコープ: グローバル。
8904 セカンダリ レプリカでの並列での再実行の失敗を解決する修正プログラムを有効にします。 詳細については、KB5004649 を参照してください。

適用対象: CU 12 以降の SQL Server 2019 (15.x) のみ。

適用対象: SQL Server 2019 (15.x)

スコープ: グローバルのみ。
9024 グローバル ログ プールのメモリ オブジェクトを、NUMA ノードのパーティション分割されたメモリ オブジェクトに変換します。 詳細については、KB2809338 を参照してください。

注: SQL Server 2012 (11.x) Service Pack 3 および SQL Server 2014 (12.x) Service Pack 1 以降、この動作はデータベース エンジンによって制御されるようになり、トレース フラグ 9024 に効力はありません。

スコープ: グローバルのみ。
9109 クエリ通知機能の開始を無効にします。 詳細については、「データベースでクエリ通知が使用されている場合、復元または回復に失敗したり、長時間かかる場合がある」を参照してください。

警告: このトレース フラグを使用する場合は注意が必要です。 このトレース フラグは、限られた一連のシナリオで、主に問題のトラブルシューティングや特定を行うために役立つ場合があります。

スコープ: グローバル、セッション。
9135 インデックス付きビューの使用を回避します。 クエリ レベルでこれを行うには、このトレース フラグを使用する代わりに、USE HINT 'EXPAND VIEWS' クエリ ヒントを追加します。 詳細については、「テーブル ヒント (Transact-SQL)」を参照してください。

適用対象: SQL Server 2019 (15.x) CU 23 以降のバージョン。

スコープ: グローバルのみ。
9347 Sort 演算子のバッチ モードを無効にします。 SQL Server 2016 (13.x) では、多くの分析クエリのパフォーマンスが向上する新しいバッチ モード Sort 演算子が導入されています。 詳細については、KB3172787 を参照してください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9348 クエリ オプティマイザーのカーディナリティの推定を使用して、クラスター化列ストア インデックスの BULK INSERT を開始する必要があるかどうかを決定できるようにします。 挿入する行の推定数が 102,400 未満の場合、データベース エンジン により BULK INSERT が使用されます。 推定数が 102,400 行を超えると、BULK INSERT が開始されます。 詳細については、KB2998301 を参照してください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9349 Top N Sort 演算子のバッチ モードを無効にします。 SQL Server 2016 (13.x) では、多くの分析クエリのパフォーマンスが向上する新しいバッチ モード top sort 演算子が導入されています。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9358 Sort 演算子のバッチ モードを無効にします。 詳細については、KB3171555 を参照してください。

注: SQL Server 2017 (14.x) 以降、この機能は既定で有効になり、このトレース フラグは何の影響もありません。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9389 バッチ モード演算子の追加の動的なメモリ許可を有効にします。 クエリが必要なすべてのメモリを取得できない場合、データが tempdb に書き込まれることで I/O が増加し、クエリのパフォーマンスに影響する可能性があります。 動的メモリ許可トレース フラグを有効にすると、バッチ モード演算子は追加メモリを要求でき、追加メモリが使用可能な場合に tempdb への書き込みが回避されます。 詳細については、「メモリ管理アーキテクチャ ガイド」のクエリごとの最小メモリの効果に関するセクションを参照してください。

スコープ: グローバルまたはセッション。
9398 適応型結合演算子を無効にします。この演算子は、SQL Server 2017 (14.x) で導入され、最初の入力のスキャンが終わるまで、ハッシュ結合方法またはネステッド ループ結合方法のどちらを選ぶかを、遅延することができます。 詳細については、KB4099126 を参照してください。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9410 ハッシュ集計演算子とスピルを使用するクエリに対して、既定以外の修正を有効にします。 このトレース フラグを有効にすると、個別のハッシュ操作で使用可能なメモリが増加します。 詳細については、KB3167159 を参照してください。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9440 バグ 2112485 およびバグ 2636294 の修正プログラムを無効にします。 レガシのカーディナリティ推定 (CE) モデルを使用する場合、バグ修正は適用されません。 データベースで既定の CE モデルが使用されている場合、外部結合カーディナリティの推定値は、結合述語がテーブルの主キー (主キーと外部キーの結合など) で構成されている場合に、結合に関係するテーブルのカーディナリティ数よりも高くなる可能性があります。 このシナリオのレガシ CE に存在する過大推定の制限と同様に、カーディナリティ数の過大推定を制限する上限が適用されます。

注: このトレース フラグは、互換性レベルが 160 以下のデータベースにのみ適用されます。

適用対象: SQL Server 2019 (15.x) CU 20、SQL Server 2022 (16.x) CU 9 以降のバージョン。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9453 バッチ モード実行を無効にします。 詳細については、KB4016902 を参照してください。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9471 SQL Server 2014 (12.x) 以降のバージョンのクエリ オプティマイザーカーディナリティ推定モデルにおいて、SQL Server が単一テーブル フィルターの最小限の選択性を使ってプランを生成するようになります。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES'クエリ ヒントを追加します。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

注: このトレース フラグは CE バージョン 70 には適用されません。 トレース フラグ 4137 を代わりに使ってください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9476 SQL Server 2014 (12.x) 以降のバージョンのクエリ オプティマイザーカーディナリティ推定モデルにおいて、既定の基本含有の推定の代わりに単純な含有の推定を使って、SQL Server にプランを生成させます。 詳細については、KB3189675 を参照してください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS'クエリ ヒントを追加します。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9481 データベースの互換性レベルに関係なく、クエリ オプティマイザー カーディナリティ推定 (CE) モデルを SQL Server 2012 (11.x) 以前 (バージョン 70) に設定します。 詳細については、KB2801413 を参照してください。

SQL Server 2016 (13.x) 以降で、データベース レベルでこれを実現する方法については、「ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)」の LEGACY_CARDINALITY_ESTIMATION オプションをご覧ください。

SQL Server 2016 (13.x) Service Pack 1 以降で、クエリ レベルでこれを実現するには、このトレース フラグを使用する代わりに、USE HINT 'FORCE_LEGACY_CARDINALITY_ESTIMATION'クエリ ヒントを追加します。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9485 DBCC SHOW_STATISTICS に対する SELECT 権限を無効にします。 詳細については、KB2683304 を参照してください。

スコープ: グローバルのみ。
9488 SQL Server 2012 (11.x) 以降のバージョンのクエリ オプティマイザー カーディナリティ推定モデルを使用する場合、テーブル値関数の固定の推定を既定値の 1 に設定します (SQL Server 2008 R2 (10.50.x) 以前のクエリ オプティマイザー カーディナリティ推定モデルでの既定値に対応します)。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9495 INSERT...SELECT 操作の挿入の間に並列処理を無効にして、ユーザー テーブルと一時テーブルの両方に適用します。 詳細については、KB3180087 を参照してください。

スコープ: グローバルまたはセッション。
9567 自動シード処理時の Always On 可用性グループのデータ ストリーム圧縮を有効にします。 自動シードの処理中、圧縮によって転送時間が大幅に短縮され、プロセッサの負荷が増大します。 詳しくは、「AlwaysOn 可用性グループを自動的に初期化する」および「可用性グループの圧縮の調整」をご覧ください。

スコープ: グローバルまたはセッション。
9571 既定のデータベース パスに対する可用性グループの自動シード処理を無効にします。 詳細については、「ディスク レイアウト」を参照してください。

スコープ: グローバルまたはセッション。
9576 SQL Server 2016 (13.x) Service Pack 1 CU 10、SQL Server 2016 (13.x) Service Pack 2 CU 2、および SQL Server 2017 (14.x) CU 9 で導入された可用性グループのフェールオーバー用の強化されたエラー収集を無効にします。 詳細については、「SQL Server の可用性グループ – 強化されたデータベース レベルのフェールオーバー」を参照してください。

スコープ: グローバルのみ。
9591 Always On 可用性グループでのログ ブロック圧縮を無効にします。 ログ ブロック圧縮は、SQL Server 2012 (11.x) および SQL Server 2014 (12.x) の同期および非同期レプリカの両方で使われる既定の動作です。 SQL Server 2016 (13.x) の圧縮は、非同期レプリカでのみ使われます。

スコープ: グローバルまたはセッション。
9592 同期可用性グループのログ ストリーム圧縮を有効にします。 この機能は、圧縮によって待機時間が長くなるため、同期可用性グループでは既定で無効にされています。 詳細については、「 Tune compression for availability group」(可用性グループの圧縮を調整する) を参照してください。

スコープ: グローバルまたはセッション。
9708 拡張イベント セッションのイベント発行メトリックの収集を有効にします。 詳細については、「sys.dm_xe_session_events」を参照してください。

適用対象: SQL Server 2022 (16.x) 以降のバージョン。

スコープ: グローバルのみ。
9810 インメモリ OLTP エンジンがスレッド ローカル ストレージ (TLS) メモリを再利用できないようにします。 SQL Server 2019 (15.x) 以前のバージョンでは、TLS メモリを再利用しないのが既定の動作です。 SQL Server 2022 (16.x) では、インメモリ OLTP エンジンで TLS メモリを再利用し、メモリ不足の問題が発生する可能性を減らす、新しいメモリ最適化が導入されました。 このトレース フラグによって、SQL Server 2022 (16.x) より前の動作に戻ります。

適用対象: SQL Server 2022 (16.x) 以降のバージョン。

スコープ: グローバルのみ。
9929 インメモリ チェックポイント ファイルをそれぞれ 1 MB に削減します。 詳細については、KB3147012 を参照してください。

スコープ: グローバルのみ。
9939 SQL Server 2016 (13.x) での DML 操作の対象になっていない限り、メモリ最適化テーブルまたはテーブル変数を参照する DML 操作で、メモリ最適化テーブルおよびテーブル変数の並列プランと並列スキャンを有効にします。 詳細については、KB4013877 を参照してください。

注: トレース フラグ 4199 が明示的に有効になっている場合、トレース フラグ 9939 は必要ありません。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
9944 データベースに多数のメモリ最適化テーブルまたはメモリ最適化テーブルの種類があり、待機の種類 PREMPTIVE_OS_FINDFILE または PREEMPTIVE_OS_CREATEDIRECTORY によるブロックが発生する可能性がある場合、遅いデータベース回復時間に対応する既定以外の修正を有効にします。 詳細については、KB4090789 および KB4052338 を参照してください。

スコープ: グローバルのみ。
9953 メモリ最適化テーブルで使用される非表示スケジューラを再利用します。

適用対象:: SQL Server 2019 (15.x) CU 20 以降のバージョンと、SQL Server 2022 (16.x) CU 3 以降のバージョン。

スコープ: グローバルのみ。
10054 OR 述語内のサブクエリを外部結合に相関解除する SQL Server クエリ オプティマイザー ルールを無効にします。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。

スコープ: グローバル、セッション、クエリ (QUERYTRACEON)。
10204 列ストア インデックスの再編成中に、マージ/再圧縮を無効にします。 SQL Server 2016 (13.x) には、列ストア インデックスを再編成するときに、圧縮された小さい行グループを圧縮された大きい行グループに自動的にマージして、多数の行が削除されている行グループを再度圧縮するための新しい機能があります。

注:トレース フラグ 10204 は、メモリ最適化テーブル上に作成された列ストア インデックスには適用されません。

スコープ: グローバルまたはセッション。
10207 クラスター化列ストア インデックス (CCI) スキャンで、破損したセグメントまたはメタデータをスキップできるようにします。これにより、破損した CCI からデータを取得できるようになります。 詳細については、KB3067257 を参照してください。

スコープ: グローバルまたはセッション。
10316 既定のものに加えて、内部メモリ最適化ステージング テンポラル テーブルに追加のインデックスを作成できるようにします。 既定のインデックスで対応されていない列を含む特定のクエリ パターンがある場合は、新しいインデックスの追加を検討できます。

注: メモリ最適化テーブルのシステムでバージョン管理されたテンポラル テーブルは、高いトランザクション スループットを提供するように設計されています。 追加のインデックスを作成すると、現在のテーブルの行を更新または削除する DML 操作のオーバーヘッドが発生する可能性があります。 追加のインデックスを使用して、テンポラル クエリのパフォーマンスと DML オーバーヘッドの増加の間で適切なバランスを見つける必要があります。

スコープ: グローバルまたはセッション。
10460 SQL Server Stretch Database 機能により、Azure SQL Database Hyperscale サービス レベル内でストレッチ テーブルがプロビジョニングされます。

適用対象: SQL Server 2017 (14.x) CU 31、SQL Server 2019 (15.x) CU 18、SQL Server 2022 (16.x) 以降のバージョン。

SQL Server 2017 (14.x) CU 31、SQL Server 2019 (15.x) CU 18、SQL Server 2022 (16.x) 以降では、ストレッチ データベース 機能の既定の動作により、Azure SQL Database Standard サービス レベル (S3) 内でストレッチ テーブルがプロビジョニングされます。 詳しくは、KB5018050 をご覧ください。

スコープ: グローバルのみ。
11023 サンプル レートが UPDATE STATISTICS ステートメントの一部として明示的に指定されていない場合、後続のすべての統計更新に対して、最後に永続化されたサンプル レートの使用を無効にします。 詳細については、KB4039284 を参照してください。

スコープ: グローバルのみ。
11024 任意のパーティションの変更数がローカルなしきい値を超えた場合の統計の自動更新のトリガーを有効にします。 詳細については、KB4041811 を参照してください。

適用対象: SQL Server 2016 (13.x) Service Pack 2、SQL Server 2017 (14.x) CU 3 以降のバージョン。

スコープ: グローバルのみ。
11047 query wait (s) または Resource Governor REQUEST_MEMORY_GRANT_TIMEOUT_SEC 構成によって設定された既定のタイムアウトが、列ストア インデックスの構築操作に適用されます。 詳細については、KB4480641 を参照してください。

適用対象: SQL Server 2016 (13.x) Service Pack 2 CU 5、SQL Server 2017 (14.x) CU 14 以降のバージョン。

スコープ: グローバルのみ。
11064 SELECTINSERT ステートメント間のメモリ配分を最適化することにより、列ストア インデックスへのデータ読み込み操作のスケーラビリティが向上します。 列ストア インデックスへのデータの読み込みの詳細については、「列ストア インデックス - データ読み込みガイダンス」を参照してください。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

スコープ: グローバルのみ。
11068 列ストア インデックスの挿入操作に対して、サーバー、データベース、またはリソース プールの構成された並列処理の最大限度 (MAXDOP) 値を使用します。 並列処理の度合いのオーバーライドについて詳しくは、「クエリ処理アーキテクチャ ガイド」を参照してください。

重要: このトレース フラグは、トレース フラグ 11064 も有効になっている場合にのみ有効です。

重要: このトレース フラグは、列ストア セグメントの質の維持よりも高速なデータ読み込みが優先される場合に使用します。 たとえば、挿入操作が並列モードで実行される場合、列ストアに 1,048,577 行を読み込むときにこのトレース フラグを使用すると、複数の圧縮された行グループが生成される可能性があります。 このトレース フラグがない場合、挿入操作では 1 つの圧縮された行グループが生成されます。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

スコープ: グローバルのみ。
11561 レプリケーションの Azure Active Directory (Azure AD) 認証を無効にします。

注: このトレース フラグは、SQL Server 2022 (16.x) CU 6 以降のバージョンに適用されます。

スコープ: グローバルまたはセッション。
11631 ALTER INDEX ... REORGANIZEバックグラウンド マージ タスクによって列ストア インデックス行グループの削除された行がクリーンアップされるのは、その行グループから特定のしきい値の行が削除された場合のみです。 既定のしきい値は、最大行数 (100 万) の 10% つまり 100,000 行です。

このトレース フラグにより、しきい値が列ストア行グループ内の現在の合計行数の 10% に変更されます。 たとえば、行グループに 20,000 行が含まれている場合、しきい値は 2,000 行の削除であり、これを超えるとこの行グループはクリーンアップの対象と見なされます。 詳細については、KB5000895 を参照してください。

適用対象: SQL Server 2019 (15.x) CU 9 以降のバージョン。

スコープ: グローバルのみ。
11634 ALTER INDEX ... REORGANIZEバックグラウンド マージ タスクによって列ストア インデックス行グループの削除された行がクリーンアップされるのは、その行グループから特定のしきい値の行が削除された場合のみです。 既定のしきい値は、最大行数 (100 万) の 10% つまり 100,000 行です。

このトレース フラグにより、しきい値が列ストア行グループ内の現在の合計行数の 1% に変更されます。 トレース フラグ 11631 と共に有効にすると、100 万行の 1% ではなく、行グループ内の現在の行数の 1% になります。 詳細については、KB5000895 を参照してください。

適用対象: SQL Server 2019 (15.x) CU 9 以降のバージョン。

スコープ: グローバルのみ。
12310 各可用性グループ ゲートで許可されるメッセージ数に対するフロー制御の制限を増やします。 これらの制限は SQL Server 2022 (16.x) の新しい既定値であるため、このバージョンではトレース フラグは無効です。 詳細については、「フロー制御ゲート」を参照してください。

適用対象: SQL Server 2019 (15.x) CU 9、SQL Server 2017 (14.x) CU 18、SQL Server 2016 (13.x) SP 1 CU 16 以降のバージョン。

スコープ: グローバルのみ。
12324 Azure SQL Managed Instance のリンク機能の変更に伴い発生する、レプリカが異なる累積的な更新プログラムで実行されているときに可用性グループが同期されない問題を解決します。 詳細については、KB5024276 を参照してください。

適用対象: SQL Server 2019 (15.x) CU 20 以降のバージョン。

スコープ: グローバルのみ。
12481 監査レコードの external_policy_permission_checked フィールドの外部アクセス許可に関する監査情報のログを無効にします。 詳しくは、KB5022375 を参照してください。

適用対象: SQL Server 2022 (16.x) CU 1 以降のバージョン。

スコープ: グローバルのみ。
12502 オンプレミスの SQL Server インスタンスの外部認可ポリシーを無効にします。

適用対象: SQL Server 2022 (16.x) CU 5 以降のバージョン。

スコープ: グローバルのみ。
12618 自動チューニング機能のプランの自動修正 (APC) モデルを有効にして、同じプランに対して複数の連続するプランの回帰チェックを実行します。これにより、新しいモデルによる評価のための追加統計情報の蓄積が可能になります。 詳しくは、KB5026717 を参照してください。

適用対象: SQL Server 2022 (16.x) CU 4 以降のバージョン。

スコープ: グローバルのみ。
12656 自動チューニング機能のプランの自動修正 (APC) モデルを有効にして、プランの変更が検出されてから 5 分後に発生する時間ベースのプラン回帰チェックを使います。これにより、迅速に実行されるクエリによる回帰チェックの偏りを回避できます。 これにより、APC で実行時間が長くなる可能性があるクエリ実行を考慮に入れることができます。または、プランの変更が原因でタイムアウトしやすくなります。 詳しくは、KB5026717 を参照してください。

適用対象: SQL Server 2022 (16.x) CU 4 以降のバージョン。

スコープ: グローバルのみ。
13116 バグ 13685819 の修正プログラムを無効にします。 このトレース フラグは、SQL Server 2016 (13.x) Service Pack 2 CU 16 を適用した後に、並列プランを使用する DML (insert/update/delete) クエリが実行を完了できず、HP_SPOOL_BARRIER 待機が発生する問題が発生した場合に使用します。

適用対象: SQL Server 2016 (13.x) Service Pack 2 CU 16。

スコープ: グローバルのみ。
13127 追加の文字列パターン マッチングの最適化を有効にします。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。ハイ パフォーマンスのワークロードがあるハイエンド システムを対象としています。

スコープ: グローバルまたはセッション。
13156 "多数のスカラー式の再評価を伴う UDF 呼び出しにより、応答を停止しているスケジューラ エラーが発生する可能性がある" という問題の修正を無効にします。 この元の修正では、パフォーマンス低下が発生することがあります。 詳しくは、KB4538581 を参照してください。

スコープ: グローバルのみ。
15025 新しく作成された仮想ログ ファイル (VLF) に必要な Azure Key Vault アクセスを無効にします。これにより、大量の顧客ワークロードを中断することなく続行できます。 このトレース フラグを有効にすると、SQL Server では暗号化とキーの生成に拡張キー管理が使用され、VLF の作成時に Azure Key Vault が使用されることはありません。 詳しくは、「暗号化とキーの生成に EKM を使用する大量の顧客ワークロードでのデータベースのアクセスに関する問題」を参照してください。

適用対象: SQL Server 2019 (15.x) CU 19、SQL Server 2022 (16.x) CU 1 以降のバージョン。

スコープ: グローバルのみ。
15096 AVX-512 命令セットを使用した母集団の数 (popcnt) 操作を無効にします。

適用対象: SQL Server 2022 (16.x) 以降のバージョン。

スコープ: グローバルまたはセッション。
15097 SQL Server 2022 (16.x) 以降のバージョンに対して AVX-512 のサポートを有効にします。

重要: 次の CPU に対して AVX-512 のサポートを有効にすることをお勧めします。

- Intel Ice Lake 以降
- AMD EYPC Genoa 以降

適用対象: SQL Server 2022 (16.x) 以降のバージョン。

スコープ: グローバルまたはセッション。
15212 タイムアウト イベントの詳細通知として機能する Service Broker タイマー メッセージを無効にします。 このトレース フラグの影響を受けるメッセージは、Service Broker ダイアログ クリーンアップ シーケンスの SSBDT: Dialog timer delete during registration (SSBDT: 登録中のダイアログ タイマーの削除) と、Service Broker ダイアログのクローズ シーケンスの SSBDT: Dialog timer delete during dispatch (SSBDT: ディスパッチ中のダイアログ タイマーの削除) です。 このトレース フラグが有効になると、これらの非公式メッセージの出力はスキップされます。

適用対象: SQL Server 2022 (16.x) 以降のバージョン。

スコープ: グローバルのみ。