创建自动种子设定的可用性组的性能考虑


SQL Server 使用固定数目的线程进行自动种子设定。 在主实例中,SQL Server 对每个 LUN 使用一个线程来读取更改。 在辅助实例中,SQL Server 对每个 LUN 使用一个线程来初始化数据库。


在自动种子设定过程中,在主副本上的数据库的日志备份继续增长,不能被截断,直到数据库的自动种子设定完成。然后,事务日志可以使用日志备份来截断。在一个繁忙的数据库上长时间的初始化进程会导致显著的事务日志增长。关于延迟事务截断,可以参考影响延迟事务截断的因素。


自动种子设定是一个单线程进程,可以最多处理5个数据库。例如,对于含有2个数据库的可用性组,有3个辅助副本。那么主副本上的VDI线程数实际为5*12=60个。单线程影响性能,尤其是可用性组不只一个数据库时。


自动种子设定可以使用压缩,但是它默认是禁用的。在主要副本上设置跟踪标志 9567,以在自动种子设定过程中启用数据流压缩。 这可以显著减少自动种子设定的传输时间,但也会增大 CPU 使用率。