使用数据库复制的人,首先要担心的就是主服务器和备份服务器的性能消耗。我也很担心这个。找了半天,基本没有找到类似的测试说明,我自己测试了一下。以下为测试结果,仅供参考。我使用了数据库推送复制模式。下面的测试页面就是基于这种模式。因为数据库复制主要是I/O操作,所以这里主要测试的是测试服务器的硬盘读写操作,本次测试的主要监控对象是avg。磁盘队列长度(以下简称dql)可以简单理解为磁盘数据吞吐量的外在表现。通俗地说,就是在曲线上随机选择两个不同的点。点高说明正在执行的读写操作量比较大,反之则比较小。第一种情况:每秒写入一次数据,一次写入三个表,一个周期写入10000条记录。Process:closereplication,simplewrite,dqlaveragemaximumvalue:0.126,enablereplication,Forsynchronouswriting,dqlaveragevalueis:0.132结论:鉴于这个比例,每秒一次是写这个小数据库,同步问题,我们完全可以忽略第二种情况:忽略Waitingtime,一次写入三张表,无限循环写入数据10000次。过程:关闭复制,简单写入,第一次测试:dql平均值:3.05-3.08第二次测试:2.2-2.30开启复制,同步写入,dql平均值为:3.06-3.10第二次测试:2.2-2.34结论:由于两次测试间隔时间较长,机器的情况不一致,但是结果很明显,相差不大。第三种情况:关闭replication,masterserver写数据10000次,每次写三张表,然后启动server,masterserver的dql基本不变,因为是replicaserver写的数据是与主服务器没有密切关系。从上面的情况来看,复制基本不会影响主服务器的性能消耗。但是通过SQLServerProfiler的监控,我们会发现存在大量的复制监控器。这个replicationmonitor,会非常消耗服务器的性能,导致服务器变慢。因为是推送模式,主服务器必须时刻监控自己的变化,会造成性能消耗。如下图所示如何解决这个问题?首先,我们会认为降低主服务器的监控频率就可以了,打开复制监控器,右击--》发布服务器属性设置,修改刷新率。一般我们可以接受延迟修改后30-60秒,当我们去SQLServerProfiler查看的时候,会发现基本上消耗会很小,如果你的服务器复制模式是订阅模式,那么可以去---agent配置文件--->分销代理---修改你的订阅时间原文链接:http://www.cnblogs.com/AK2012/archive/2012/06/26/2012-0626.html
