服务器配置: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