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