サーバー構成: 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