次の方法で共有


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

適用対象: SQL Server Azure SQL Managed Instance

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

ドキュメントに記載されているすべてのトレース フラグと Microsoft サポートがお勧めするトレース フラグは、指示どおりに使用した場合、運用環境で完全にサポートされます。 この一覧のトレース フラグには、特定の使用方法に関する追加の考慮事項が含まれている可能性があるため、ここでまたはサポート エンジニアが提供するすべての推奨事項を慎重に確認することをお勧めします。 また、SQL Server での構成変更と同様に、展開する前に、運用環境以外でこのフラグを徹底的にテストすることをお勧めします。

Note

Microsoft Entra ID の、旧称は Azure Active Directory(Azure AD)です。

解説

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

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

  • グローバル トレース フラグは、グローバルに有効化する必要があります。 グローバルに有効化しない場合、そのトレース フラグは機能しません。 起動時に、Windows の -T コマンド ライン オプションを使用するか、linux mssql-conf on 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 チェック コマンドのスコープで正しい変換セマンティクスを強制します。 詳細については、「一部のデータ型と一般的でない操作の処理におけるSQL Server と Azure SQL Database の機能強化」を参照してください。

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

警告: トレース フラグ 139 は運用環境で継続的に有効にすることを意図したものであり、一部のデータ型と一般的でない操作の処理における SQL Server と Azure SQL Database の機能強化で説明されているデータベース検証チェックを実行する目的でのみ使用する必要があります。 検証チェック完了後直ちに無効にする必要があります。

スコープ: グローバルのみ。
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 のIDENTITY_CACHE オプションを参照してください。

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

SQL Server 2019 (15.x) 以降では、データベース レベルでこれを実現するには、 ALTER DATABASE SCOPED CONFIGURATION の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をオンにすることが重要です。 詳細については、「データ ローディング パフォーマンス ガイド」を参照してください。

スコープ: グローバルまたはセッション。
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 を有効にしないことをお勧めします。 詳細については、「 バッチ モード処理と大きなページ メモリ モデルの間の相互運用の問題を参照してください。 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 (Transact-SQL) の File および Filegroup オプション」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

スコープ: グローバルまたはセッション。
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 へのバックアップでプロキシ サーバーを使用できるようにします。 このトレース フラグに加えて、Windows Vista、Windows Server 2008、およびそれ以降のバージョンの netsh.exe ユーティリティを使用して、サーバー上の WinHTTP プロキシ構成を設定する必要があります。

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

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

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

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 を明示的に指定したネステッド ループ結合ではなく、最適化されたネステッド ループ結合を使用できます。 詳細については、「 CPU またはメモリの許可が、最適化された入れ子になったループまたはバッチの並べ替えを使用するクエリで発生する可能性があるを参照してください。

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 を設定し、先頭の統計情報列を昇順または不明としてマークすると、カーディナリティの推定に使われるヒストグラムがクエリのコンパイル時に調整されます。 詳細については、 Query ヒントを参照してください。

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

注: このトレース フラグは 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 の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のLAST_QUERY_PLAN_STATSオプションを参照してください。

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

注: このオプションは、運用環境に展開する前に必ず十分にテストしてください。 SQL Server 2019 (15.x) 以降、これは 可能な変数遅延コンパイルになりトレース フラグ 2453 は影響を受けません。

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

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

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

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

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

注: 通常、並列 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 以降のバージョン。

スコープ: グローバル、セッション。
2616 スタック署名機能を使用すると、 Sqldumper.exe 1 時間あたり一意のスタック署名ごとに 1 つのダンプを生成できます。これにより、同じ問題が 1 時間以内に頻繁に繰り返される場合にダンプフラッディングの問題が発生する可能性を回避できます。

このトレース フラグを有効にすると、ダンプ ファイルの形式が SQLDump<xxxx>.mdmp または SQLDmpr<xxxx>.mdmp から SQLDmpr<xxxx>.P<xxxxx.xxxxxxxx>.T<xxxxxxxxxxxxxx>.{<xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>}.dmp に変更されます (たとえば、 SQLDmpr0024.P26900.66D498FA.T20240117034050.{eec59a9e-d615-4ac4-a46a-f650fee23787}.dmp)。

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

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

注: SQL Server 2014 (12.x) 以降では、この動作は backup checksum default 構成オプションを設定することによって制御されます。 詳細については、「 backup checksum default および Server 構成オプションを参照してください。

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

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

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

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

このトレース フラグを使用すると、バックアップと復元のログ エントリを抑制できます。 これは、頻繁にログ バックアップを実行している場合や、それらのエントリに依存するスクリプトがない場合に便利です。

スコープ: グローバルのみ。
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 読み取り可能セカンダリ レプリカでの REDO キューのビルドアップ (データ待機時間の問題) のトラブルシューティングを参照してください。

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

適用対象: 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 スナップショットなど、一部の機能を使用できない場合があります。 Move システム データベースおよび Move ユーザー データベースに使用します

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

スコープ: グローバルのみ。
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 のPARAMETER_SNIFFING オプションを参照してください。 クエリ レベルで同じ結果を達成するには、OPTIMIZE FOR UNKNOWN クエリ ヒントを追加します。 OPTIMIZE FOR UNKNOWN ヒントではパラメーター スニッフィングのメカニズムは無効にされませんが、意図した同じ結果を達成するために効果的にバイパスされます。

SQL Server 2016 (13.x) Service Pack 1 以降、クエリ レベルでこれを実現する 2 つ目のオプションは、このトレース フラグを使用するのではなく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 の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 キャッシュ ストア内のエントリの数を、ユーザーがレジストリ キーで指定した数に制限します。 詳細については、「 access check cache サーバー構成オプション」を参照してください。

スコープ: グローバルのみ。
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 のメモリ不足例外のためにメモリ ダンプが既に生成されている場合は、このトレース フラグの効果はありません。

スコープ: グローバルのみ。
6531 空間データ型を使用したクエリ操作のプリエンプティブ スケジューリング保護を無効にします。 これにより、CPU の消費量を減らし、一部の空間アクティビティの全体的なパフォーマンスを向上させることができます。 詳細については、「 KB3005300」を参照してください。

注: このトレース フラグは、個々の空間メソッドの呼び出し (行と列ごと) が最大 4 ミリ秒未満で、スケジューラエラーが頻繁に発生する場合にのみ使用します。

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

スコープ: グローバル、セッション。
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 リソースはありません。 詳細については、「 データベース管理者向けのDiagnostic 接続」を参照してください。

スコープ: グローバルのみ。
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)

スコープ: グローバルのみ。
8102 XVB_LISTスピンロックでのスピンロックの競合によって発生する CPU 使用率の高いシナリオに対処します。 これは、多数の新しい世代のプロセッサ (CPU) を搭載したハイエンド システムで最も一般的に観察できます。 このトレース フラグは、トレース フラグ 8101 と共に有効にすることができます。 トレース フラグ 8101 はスピンの増分を変更しますが、トレース フラグ 8102 はスピンロックのバックオフをずらします。 バックオフの詳細については、「 Diagnose」を参照し、SQL Server でのスピンロックの競合を解決します

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

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

適用対象: SQL Server 2019 (15.x)。 SQL Server 2022 (16.x) 以降のバージョンでは、この機能は既定で有効になっており、このトレース フラグは無効です。 この既定の動作を無効にして以前の動作に戻す場合は、トレース フラグ 8125 を使用できます。 ただし、ほとんどの場合、この選択は推奨されません。

スコープ: グローバルのみ。
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 を参照してください。

スコープ: グローバルのみ。
8239 既定では、 sys.sp_flush_commit_table_on_demand は、セキュリティで強化されたクリーンアップ バージョンと安全なクリーンアップ バージョンの最小値を計算し、コミット テーブルからのデータの削除を続行します。 トレース フラグ 8239 が設定されている場合、クリーンアップ ポイントより小さい safe_cleanup_version() 値は無視され、クリーンアップは sys.sp_flush_commit_table_on_demand再実行後に実行されます。 このトレース フラグを誤って使用すると、データが破損する可能性があります。 詳細については、「 自動クリーンアップの問題を追跡する変更のトラブルシューティングを参照してください。

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

スコープ: グローバルのみ。
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 2019 (15.x) CU 19、SQL Server 2022 (16.x) CU 1 以降のバージョン。

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

適用対象: SQL Server 2019 (15.x) CU 19、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) 以降のバージョン。

スコープ: グローバルまたはセッション。
8531 XA 分散トランザクションの実行時に発生する可能性がある KTM_RECOVERY_MANAGER 待機時間が長い競合の問題の修正を有効にします。

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

Scope: グローバルとスタートアップのみ。
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 インライン ログ IO を無効にして、多くのワーカーからの競合の可能性をバックグラウンド LogWriter ワーカーのサブセットに制限することで、セカンダリ レプリカでの並列再実行エラーに対処する修正プログラムを有効にします。 詳細については、「 KB5004649 および Trace フラグ 8904 - インライン データベース ログフラッシュを無効にするを参照してください。

適用対象: 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 にプランを生成させます。 詳細については、「 新しいカーディナリティ推定機能での包含の前提条件への参加によってクエリのパフォーマンスが低下するを参照してください。

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) に設定します。 詳細については、 Query ヒントを参照してください。

SQL Server 2016 (13.x) 以降では、データベース レベルでこれを実現するには、 ALTER DATABASE SCOPED CONFIGURATION の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 可用性グループのデータ ストリーム圧縮を有効にします。 自動シードの処理中、圧縮によって転送時間が大幅に短縮され、プロセッサの負荷が増大します。 詳細については、「 自動シード処理を使用して Always On 可用性グループを初期化し 可用性グループのtune 圧縮を するを参照してください。

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

スコープ: グローバルまたはセッション。
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) 以降のバージョン。

スコープ: グローバルのみ。
9714 SQL Server エラー ログで拡張イベント (XEvents) セッションの開始または停止を記録できるようにします。

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

スコープ: グローバルのみ。
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 を参照してください。

SQL Server on Linux の場合、このトレース フラグは SQL Server 2022 (16.x) CU 13 以降のバージョンにのみ適用されます。

スコープ: グローバルのみ。
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) 内でストレッチ テーブルがプロビジョニングされます。

スコープ: グローバルのみ。
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 レプリケーションの Microsoft Entra 認証を無効にします。

注: このトレース フラグは、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 が使用されることはありません。 詳細については、「 FIX: 暗号化とキーの生成に 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) 以降のバージョン。

スコープ: グローバルのみ。
15915 sp_lockが複数の接続から頻繁に呼び出されたときに発生する可能性があるパフォーマンスの問題の修正プログラムを有効にします。これにより、メモリ リークが発生する可能性があります。 SQL Server サービスを再起動するまで、メモリはクリーンアップされません。

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

スコープ: グローバルのみ。
16301 sp_server_diagnostics ストアド プロシージャのブロッキング I/O 操作をスキップします。 このトレース フラグをオンにすると、 sp_server_diagnostics ストアド プロシージャは I/O 統計情報を収集しませんが、Always On 可用性グループ (AG) が I/O システムに長い遅延があるときに再起動とフェールオーバーを回避するのに役立ちます。

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

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