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

适用范围:SQL Server

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

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

备注

如果将页面分配给持久版本存储(PVS)用于前台用户 DML 操作,性能可能会降低。 后台线程会预分配页面并使其随时可用于 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