適用対象:AZURE SQL
Managed Instance SQL Server 2019 (15.x) 以降のバージョン
SQL Server 2019 (15.x) 以降、および Azure SQL Managed Instance では、この構成設定は 高速データベース復旧によって使用されます。
高速データベース復旧 (ADR) では、トランザクション管理とデータベース復旧のために行バージョンが使用されます。 これらのバージョンは、さまざまなデータ操作言語 (DML) 操作の一部として生成されます。 バージョンは、永続バージョン ストア (PVS) と呼ばれる内部テーブルに行内または行外のいずれかに格納されます。
解説
フォアグラウンド ユーザーの DML 操作の一環として永続的なバージョン ストア (PVS) にページが割り当てられていると、パフォーマンスが低下することがあります。 バックグラウンド スレッドはページを事前に割り当て、PVS への挿入にすぐに使用できるようにします。 フォアグラウンド PVS 割り当ての割合が 0 に近い十分なページがバックグラウンド スレッドによって事前に割り当てられていると、パフォーマンスが最適になります。
バックグラウンド スレッドが事前割り当てするページ数は、さまざまなワークロードヒューリスティックに基づいています。 一般的に、バックグラウンド スレッドは 512 ページのチャンクを割り当てます。 ADR 事前割り当て係数は、チャンクの倍数です。 既定では、係数は 4です。つまり、必要に応じて 2048 ページが一度に事前割り当てされます。
バックグラウンド スレッドはワークロード パターンを考慮しますが、パフォーマンスの向上に必要な場合は、係数を増やすことができます。
tx_version_optimized_insert_stats拡張イベントは、PVS のスペース割り当てが発生したときに定期的に発生し、スペース割り当ての統計情報を提供します。
foreground_allocation_percent フィールドの値が 0 より大幅に大きい場合は、ADR Preallocation Factor設定を大きくすることを検討してください。
Warnung
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