トランザクション ログ ファイルは、SQL Server 2022 年 In-Memory OLTP を使用するデータベースに対して拡張されます
現象
SQL Server 2022でデータベースでインメモリ OLTP 機能が有効になっていると、トランザクション ログ ファイルが継続的に拡大していることがわかります。 さらに、SQL Server エラー ログには、 のようなClose thread is falling behind: 4 checkpoints outstanding
メッセージが含まれる場合があります。
SQL Server インスタンスを再起動すると、データベースの復旧プロセスが完了するまでに長い時間がかかる場合があります。
sys.databases と sys.dm_db_xtp_checkpoint_statsに関する問題のトラブルシューティング
カタログ ビュー sys.databases を使用して情報を収集し、この問題のトラブルシューティングを行うと、長い切り捨ての理由として列
log_reuse_wait_desc
が表示XTP_CHECKPOINT
されます。 この値は、トランザクション ログが OLTP (旧称 Hekaton) チェックポイント In-Memory が発生するのを待機していることを示します。 チェックポイント処理の遅延が示唆され、パフォーマンスやログ ファイルの増加に影響する可能性があります。SQL Server動的管理ビュー (DMV) sys.dm_db_xtp_checkpoint_statsを使用して情報を収集し、この問題のトラブルシューティングを行うと、列
outstanding_checkpoint_count
に長時間の 0 以外の値が表示されます。 チェックポイントが効率的に発生せず、パフォーマンスとログ ファイルの増加に影響を与える可能性があることを示します。
原因
SQL Server 2022 では、メモリ不足状態を減らすために、大きなメモリ サーバーのメモリ管理を改善する新機能が導入されました。 この変更の既知の問題は、「 現象 」セクションで説明されている動作につながる場合があります。
解決方法
この問題を解決するには、次の手順に従います。
- SQL Server インスタンスのスタートアップ パラメーターとして -T9810 を追加します。
- インスタンスを再起動します。
- チェックポイントを発行し、ログ バックアップを作成し、監視
log_reuse_wait_desc
し、必要に応じてログを圧縮して領域を解放します。
詳細
トレース フラグ 9810 は、In-Memory OLTP エンジンがスレッド ローカル ストレージ (TLS) メモリを解放することを無効にし、SQL Server 2019 の動作に戻します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示