SQL Server与ICX数据复制性能比较(Microsoft SQL Server数据复制与ICX-UDS同步事务复制)

美国并行计算机公司
2005年1月8日

引言
    本文的几组测试是基于微软公司的公开资料,题目是:基于事务处理的复制技术的性能调整与优化。
(URL:http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/tranrepl.mspx)
    这几组测试例程记录了在有无数据复制的情况下,对一张具有30000行记录的数据库表格进行Insert, Update, Delete 基本操作时所需要的处理时间。

本文比较了两种不同的基于事务处理的数据复制技术所带来的性能负载。
    ICX-UDS:一种基于中间件的同步复制
    SQL Server 2000内建的带有不同设置项的复制工具,例如数据分发代理在本机的、数据分发代理在远程机的、有无同步复制、有无SQL Server队列等。
测试的硬件环境:

a) ICX-UDS
数据库客户机:AMD Athelon 2400
SQL1:PIII 1GHz 100Mbps 网卡
SQL2:PIII 600MHz 100Mbps 网卡
网络:100Mbps交换机

b) SQL Server 2000
微软公司的公开资料上没有详细说明测试的硬件环境。但是,测试的结果表明和ICX的测试硬件环境是类似的,因为测试的数据是在有无复制时候的性能比较,因此在与ICX-UDS比较的时候,两者之间硬件的差别是可以忽略不计的。

复制工具:
ICX-UDS:同步事务复制中间件、带有负载均衡、内置防火墙、数据挖掘和自动的加密/解密等功能。
SQL Server 2000:SQL Server 2000带有丰富的复制工具,包括:合并复制(适合于分布式的,临时连接的客户端),基于事务的复制(适合于准实时的基于事务处理的复制),和基于快照的复制(适合于构建备份的数据集)。

本测试报告记录了采用上述硬件和软件时的执行时间;并和微软网站上的测试数据进行了比较。

1.INSERT操作的性能
ICX-UDS(立即更新):
INSERT:30000行
直接连接(SQL1):21秒
直接连接(SQL2):23秒
ICX-UDS:24秒(性能负载:(24-23)/23=4.3%)


图1. ICX-UDS 数据库插入操作性能显示
SQL Server事务交易复制:
插入:30000行
不运行复制和分发代理线程:50秒
运行远程分发代理线程:54秒(性能负载:(54-50)/50=8%)
运行本地分发代理线程:58秒(性能负载:(58-50)/50=16%)
立即更新(同步复制2PC):191秒(性能负载:(191-50)/50=282%)
SQL Server队列引发的负载:127秒(性能负载:(127-50)/50=154%)
SQL Server消息队列引发的负载:141(性能负载:(141-50)/50=182%)

2. UPDATE操作的性能
ICX-UDS(立即更新):
UPDATE:30000行
直接连接(SQL1):20秒
直接连接(SQL2):22秒
ICX-UDS:22秒(性能负载:(22-22)/22=0%)

图2. ICX-UDS 数据库更新操作性能显示
SQL Server事务交易复制:
更新:30000行
没有复制的情况下:20秒
运行远程分发代理线程:22秒(性能负载:(22-20)/20=10%)
运行本地分发代理线程:25秒(性能负载:(25-20)/20=25%)
立即更新(同步复制2PC):177秒(性能负载:(177-20)/20=785%)
SQL Server队列引发的负载:99秒(性能负载:(99-20)/20=395%)
SQL Server消息队列引发的负载:144(性能负载:(144-20)/20=620%)

3. DELETE操作的性能
ICX-UDS(立即更新):
DELETE:30000行
直接连接(SQL1):22秒
直接连接(SQL2):19秒
ICX-UDS:19秒(性能负载:(19-19)/19=0%)

图3. ICX-UDS 数据库删除操作性能显示
SQL Server事务交易复制:
删除:30000行
没有复制的情况下:20秒
运行远程分发代理线程:20秒(性能负载:(20-20)/20=0%)
运行本地分发代理线程:22秒(性能负载:(22-20)/20=10%)
立即更新(同步复制2PC):118秒(性能负载:(118-20)/20=490%)
SQL Server队列引发的负载:64秒(性能负载:(64-20)/20=220%)
SQL Server消息队列引发的负载:107(性能负载:(107-20)/20=435%)

结论
    很明显,和Microsoft SQL Server 2000的复制工具比较,具有专利技术的ICX-UDS复制算法带来的额外性能负载非常小,尤其是和立即更新(同步复制2PC)的复制方法比较的时候,对比更加明显,而立即更新(同步复制2PC)这种复制方法在当前构建稳健可靠的OLTP基础设施时是经常采用的!

操作 ICX-UDS负载 Microsoft SQL Server 2000负载
Insert 4.30%
282%
Update 0%
785%
Delete 0% 490%

如有任何疑问,欢迎联系我们。