SQL Server 2025 (17.x)
availability group commit time使用服务器配置选项为 AlwaysOn 可用性组指定组提交时间(以毫秒为单位)。
注释
从 SQL Server 2025(17.x)开始,服务器 availability group commit time 配置选项可用。
概述
在事务提交之前,事务中所做的更改在事务外是不可见的。 Always On 可用性组的已提交事务定义要求可用性组中的所有同步次要副本确认进行了固化提交。 在主要副本上发出提交后,需要将这一事实通过网络快速传播到所有次要副本。
由于 SQL Server 依赖于 预写事务日志记录 来维护事务的 ACID 属性,更改首先以 日志块的形式记录到事务日志中。 这些日志块被发送到所有辅助副本的事务日志中,然后加以应用。
为了提高 SQL Server 2016 (13.x) 及更高版本的性能并减少延迟,SQL Server 采用了 10 毫秒的延迟,以尝试先将多次提交操作装入 Always On 可用性组日志块,再发送给次要辅助副本。
SQL Server 2025 (17.x) 引入了 availability group commit time 服务器配置选项,用于指定可用性组副本的组提交时间(以毫秒为单位)。 对于默认值为 10 毫秒过长的业务方案,此选项使 SQL Server 能够在更少的日志块内将多个提交分组到批中。
分组提交需要在数据复制效率与向发出方返回提交成功结果所需的时间之间进行权衡。
- 在繁忙的系统上,分组提交可使日志块填充更多事务,从而有助于避免网络饱和以及减少在备用副本上应用多个小型日志块的相关开销。
- 但是,将事务应用到次要副本之前,会有10毫秒的延迟,这可能会在某些业务场景中引发问题。
对于默认值为 10 毫秒太长的业务方案,可以将服务器配置选项修改 availability group commit time 为较低的值,以便事务更快地发送到辅助副本。