测试数据表量1500w+,使用初始化默认的快照代理参数,复制的三个过程包括快照初始化,订阅初始化和数据修改复制,主要对快照代理、分发代理、日志读取代理分别作了参数优化,并给出优化前后的对照实验测试。
1.初始化快照
- 在复制监视器中找到快照代理位置,右键,选择代理配置文件:

- 查看默认配置:

- 初始化快照时间:

2.优化参数测试
- 新建一个快照代理配置文件,命名为“快照代理优化参数 ”
- 查找这个代理配置文件的profile_id
use msdb SELECT * FROM msdb.dbo .MSagent_profiles WHERE agent_type =1 或者 EXEC sp_help_agent_profile @agent_type= 1
这里的agent_type注解如下
代理的类型:
1 = 快照代理
2 = 日志读取器代理
3 = 分发代理
4 = 合并代理
9 = 队列读取器代理
- 修改配置文件,这里新增了MaxBcpThreads,MaxNetworkOptimization参数,修改了BcpBatchSize,HistoryVerboseLevel参数,对于性能提高最大的参数就是MaxBcpThreads,其他参数调整对性能调高不大,但MaxNetworkOptimization参数一定要调整到1,可以减少传输到订阅服务器上不必要的操作。
USE msdb EXEC sp_add_agent_parameter @profile_id = 17, @parameter_name = 'MaxBcpThreads', @parameter_value = 4 EXEC sp_add_agent_parameter @profile_id = 17, @parameter_name = 'MaxNetworkOptimization', @parameter_value = 1 EXEC sp_change_agent_parameter @profile_id = 17, @parameter_name = 'BcpBatchSize', @parameter_value = 200000 EXEC sp_change_agent_parameter @profile_id = 17, @parameter_name = 'HistoryVerboseLevel', @parameter_value = 1
- 调整后的参数:

- 优化后测试结果,时间大大减少。但是如果在有业务负载同时生成快照,那么资源消耗很大,建议合理调整参数,不要设置太大并发,用默认配置已经有很高的I/O了。

标签:
SQL Server 复制
, 性能优化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?