SQL Server提高事务复制效率优化订阅初始化优化

Posted 天午绝人的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server提高事务复制效率优化订阅初始化优化相关的知识,希望对你有一定的参考价值。

初始化订阅主要是由分发代理分发和应用快照代理之前生成的快照,所以优化的主体是分发代理。
1、初始化订阅
  • 首先在本地创建一个订阅,发布服务器、分发服务器和订阅服务器都在同一台服务器上,仅为了测试生产环境不要这样做

  • 分发服务器参数配置

  • 初始化订阅运行时间

需要注意几点:
  • 快照代理实际执行的是BCP程序,生成快照文件:

  • 快照代理会在快照生成的初始阶段使用锁,虽然时间很短,但是影响范围较大。
  • 在快照生成过程中,不能对表的结构进行更改。
2.优化参数测试
  • 新建一个分发代理配置文件,命名为“分发代理优化参数 ”
  • 查找这个代理配置文件的profile_id
SELECT * FROM msdb.dbo .MSagent_profiles WHERE agent_type =3      
或者 
EXEC sp_help_agent_profile @agent_type= 3
  • 修改配置文件
EXEC sp_change_agent_parameter @profile_id = 18,
    @parameter_name = \'MaxBcpThreads\', @parameter_value = 4     
   
EXEC sp_change_agent_parameter @profile_id = 18,
    @parameter_name = \'BcpBatchSize\', @parameter_value = 100000
                             
EXEC sp_change_agent_parameter @profile_id = 18,
    @parameter_name = \'PollingInterval\', @parameter_value = 500000
  • 优化后订阅库生成测试结果,从测试结果上看并没有明显的优化。MaxBcpThreads并没有实现多线程的数据导入,后台查询也只有一个会话在执行bulk in操作,BcpBatchSize对参数影响较小,建议设置的大一些;另外两个参数不影响订阅数据库的生成效率。其实订阅库生成是整个过程的性能瓶颈所在,如果能使用多线程还是不错的解决方法,希望看到博客的同学有好方法提供一下。

 

 

以上是关于SQL Server提高事务复制效率优化订阅初始化优化的主要内容,如果未能解决你的问题,请参考以下文章

sql server 各种快照类型

Sql server AlwaysOn 组可以成为事务复制订阅者吗?

SQL Server 复制 - 没有可用的复制事务

监控SQL Server事务复制

SQL Server 事务复制到 Alwayson 组

SQL Server性能优化运用SQL Server的全文检索来提高模糊匹配的效率