服务器配置:ADR 预分配因素

适用范围:SQL Server

从 SQL Server 2019(15.x 开始),加速数据库恢复使用此配置设置。

加速数据库恢复(ADR)使用行版本进行事务管理和数据库恢复。 这些版本是在各种数据操作语言 (DML) 操作中生成的。 版本存储在名为持久性版本存储(PVS)的内部表中,或行外存储。

备注

如果将页面分配给持久版本存储(PVS)用于前台用户 DML 操作,性能可能会降低。 后台线程预先分配页面,并使其随时可供插入 PVS。 当后台会话预分配足够多的页面,前台 PVS 分配的百分比接近 0 时,性能最佳。

后台线程预分配的页数基于各种工作负荷启发法。 通常,后台线程分配 512 页的区块。 ADR 预分配系数是块的倍数。 默认情况下,该因素为 4,这意味着在需要时一次预分配 2048 页。

尽管后台会话会考虑工作负载模式,但如果需要,可以增大此系数以提高性能。 tx_version_optimized_insert_stats当 PVS 中的空间分配发生并提供空间分配统计信息时,扩展事件会定期触发。 如果字段中的值 foreground_allocation_percent 明显高于零,请考虑增加 ADR Preallocation Factor 设置。

警告

如果 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