初始化订阅主要是由分发代理分发和应用快照代理之前生成的快照,所以优化的主体是分发代理。
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提高事务复制效率优化(三)订阅初始化优化的更多相关文章

  1. SQL Server提高事务复制效率优化(一)总体概述

      随着公司业务的发展,数据量增长迅速,在解决Scale Out的同时,还要考虑到主从的复制延迟问题,尽量降到1s以内满足线上业务,如果不调整,SQL Server默认的配置可能平均要3s左右.生产的 ...

  2. SQL Server提高事务复制效率优化(二)快照初始化优化

    测试数据表量1500w+,使用初始化默认的快照代理参数,复制的三个过程包括快照初始化,订阅初始化和数据修改复制,主要对快照代理.分发代理.日志读取代理分别作了参数优化,并给出优化前后的对照实验测试. ...

  3. SQL Server提高事务复制效率优化(四)修改数据同步过程优化

    1.原理       我说的数据修改同步过程指的是在快照生成完毕,分发代理将快照应用于订阅服务器完成订阅服务器初始化后,发布服务器后续的更改同步到订阅服务器过程,这也就是我们常常关注的延迟.此过程主要 ...

  4. SQL Server 2000事务复制问题

    2000现在用的估计不多了,把之前收集的一些复制问题整理发布出来.可能都是些很白很二的问题,但人总是由最初的无知不断成长●-● SQL Server 2000事务复制问题服务器A(发布) 服务器B(分 ...

  5. SQL Server提高并发查询效率

    同事写了个程序用创建多个线程使用ado同时对同个数据库进行相同的查询,涉及2张数据表的联查.当线程数非常多的情况下,读取数据的效率就会变得很慢,例如50个线程同时查询大概3000条数据,查询完成后通过 ...

  6. Sql Server 2012 事务复制遇到的问题及解决方式

    1.订阅服务器提示:作业失败.无法确定所有者 WIN-01Q6JB46CHV\Administrator(拥有作业XXX)是否有服务器访问权限(原因:无法获取有关 Windows NT 组/用户'WI ...

  7. 通过SQL Server 2008数据库复制实现数据库同步备份

    SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主 ...

  8. sql server 2008数据复制

    SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数 ...

  9. 【转】通过SQL Server 2008数据库复制实现数据库同步备份

    SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数 ...

随机推荐

  1. GC 源码分析

    java对象的内存分配入口 Hotspot 源码解析(9) •内存代管理器TenuredGeneration对垃圾对象的回收2015-01-18阅读1154 •内存代管理器DefNewGenerati ...

  2. oracle创建删除用户和表空间

    创建用户:sqlplus /nologconn / as sysdba;create user username identified by passwordgreant dba to usernam ...

  3. 【转】无法将notepad++添加到打开方式列表中的解决办法

    问题:想要设置notepad++为默认打开方式,却发现在点击browse找到notepad++.exe点击打开后没有在打开方式列表中找到notepad++. 原因:更新程序版本后程序的路径发生了变动. ...

  4. [转]权限问题导致Nginx 403 Forbidden错误的解决方法

    权限问题导致Nginx 403 Forbidden错误的解决方法 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-08-22 这篇文章主要介绍了权限问题导致Nginx 403 F ...

  5. 【转】nginx中的ngx_cdecl

    http://blog.csdn.net/midion9/article/details/50605337 看nginx的代码时,发现有些函数返回值之后,还有一个ngx_cdecl关键字,如:   1 ...

  6. Android数据库的运用

    很简单的应用,所以我直接简单明了.     android中数据库的运用:    1.定义类继承SQLiteOpenHelper   ps:   public class DBHelper exten ...

  7. flex 布局 初次接触这个好使又不是特别好用的布局方法

    刚开始学前端的童鞋们应该也是一样先学习的table然后再学习了盒子模型,感觉终于学会了简单的网页布局,使用各种display,float,position绞尽脑汁给页面布局成自己想要的页面样式,然而, ...

  8. Rails 之微信开发 : OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

    微信公众平台,使用Ruby On Rails + Win7 在取得OpenID时,如果简单的使用http.get方法,会出现如下 SSL_connect returned=1 errno=0 stat ...

  9. MyBatis入门学习教程-Mybatis3.x与Spring4.x整合

    一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-myba ...

  10. pythonbrew, pythonz, virtualenv

    Python 的虛擬環境及多版本開發利器─Virtualenv 與 Pythonbrewhttp://www.openfoundry.org/tw/tech-column/8516-pythons-v ...