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