サーバー構成: ADR 事前割り当て係数
適用対象:SQL Server
SQL Server 2019 (15.x) 以降では、この構成設定は高速データベース復旧 使用されます。
高速データベース復旧 (ADR) では、トランザクション管理とデータベース復旧のために行バージョンが使用されます。 これらのバージョンは、さまざまなデータ操作言語 (DML) 操作の一部として生成されます。 バージョンは、永続バージョン ストア (PVS) と呼ばれる内部テーブルに格納されます。
解説
フォアグラウンド ユーザーの DML 操作の一環として永続的なバージョン ストア (PVS) にページが割り当てられていると、パフォーマンスが低下することがあります。 バックグラウンド スレッドによってページが事前に割り当てられ、DML トランザクションですぐに使用できるように維持されます。 フォアグラウンド PVS 割り当ての割合が 0 に近い十分なページがバックグラウンド スレッドによって事前に割り当てられていると、パフォーマンスが最適になります。 パフォーマンスに影響を与えるほど割合が高くなった場合、エラー ログには PreallocatePVS
タグが設定されたエントリが含まれます。
バックグラウンド スレッドが事前割り当てするページ数は、さまざまなワークロードヒューリスティックに基づいています。 一般的に、バックグラウンド スレッドは 512 ページのチャンクを割り当てます。 ADR 事前割り当て係数は、チャンクの倍数です。 既定では、係数は 4
です。つまり、必要に応じて 2048 ページが一度に事前割り当てされます。
バックグラウンド スレッドはワークロード パターンを考慮しますが、パフォーマンスの向上に必要な場合は、係数を増やすことができます。
注意事項
PVS の事前割り当て係数が増え過ぎると、システム内の他の割り当てと競合し、実際には全体的なパフォーマンスが低下する可能性があります。 この設定を変更する前に、追跡と比較の目的でシステム パフォーマンスのベースラインを取得します。
既知の問題
SQL Server 2019 (15.x) CU 12 以前のバージョンの場合、この値は 0
に設定されることがあります。 この記事の例を使用して、設計された既定値である 4
に値をリセットすることをお勧めします。
例
次の例では、事前割り当て係数を 4
に設定します。
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR Preallocation Factor', 4;
RECONFIGURE;
GO