SQL Server 2000性能测试分析

测试环境

操作系统:windows server 2003

CPU:Intel(R) Xeon(TM) CPU 3.00GHz,4核

内存:2G,主要运行MySQL服务

硬盘:cciss 37G

文件系统:NTFS,支持大文件

数据库版本:SQL Server 2000 sp3

网卡:100M

网络环境:100M交换局域网

测试方法

数据规模分为1万条、10万条、100万条和1000万条记录级别。

在每种数据规模下分别执行2000次随机查询,这样可以防止数据库直接从缓存中返回查询结果,更加接近真实的查询情况。以系统时间为随机种子,在现有的记录范围内随机执行查询操作。

查询类型分为:单表select、双表select、insert、update、delete。

每个执行条目都为单次查询的平均执行时间,单位为微妙。如果要看整体执行时间,则乘以2000即可。

由于脚本插入数据很慢,采用sql server客户端工具测试效率很低且不能保证足够的随机性,所以插入数据和测试性能都是自己编写相应的程序来完成。

开启二进制更新日志。

测试记录

测试数据

本地查询操作平均执行时间(单位:微秒)

项目记录数

单表select

双表select

insert

update

delete

1万条

295

2249

16292

2552

2681

10万条

302

134658

16406

2689

2790

100万条

524746

691188

16832

546313

501983

1000万条

49000000

103000000

16882

49100000

49100000

跨主机查询操作平均执行时间(单位:微秒)

项目记录数

单表select

双表select

insert

update

delete

1万条

986

3143

16431

3608

3497

10万条

1076

125462

17248

4087

3825

100万条

525524

709991

17514

552526

526370

1000万条

49002000

103003000

18882

49102000

49104000

到了千万条记录的规模,sql server查询及其缓慢,内存占用高达1.7G。

查询过于缓慢,导致测试效率极低,无法进行2000次随机查询,只能查询3次求平均值。

性能比较

由于百万和千万条的查询时间与1万和10万条悬殊过大,图例很难正常显示。

这里就只提供表格数据,以供比较参考。

SQL Server本地查询操作平均执行时间(单位:微秒)

项目记录数

单表select

双表select

insert

update

delete

1万条

295

2249

16292

2552

2681

10万条

302

134658

16406

2689

2790

100万条

524746

691188

16832

546313

501983

1000万条

49000000

103000000

16882

49100000

49100000

MySQL MyISAM引擎本地查询操作平均执行时间(单位:微秒)

项目记录数

单表select

双表select

insert

update

delete

1万条

178

247

694

141

170

10万条

195

271

705

157

186

100万条

3055

5164

746

4308

12373

1000万条

8665

15259

803

11033

17224

SQL Server跨主机查询操作平均执行时间(单位:微秒)

项目记录数

单表select

双表select

insert

update

delete

1万条

986

3143

16431

3608

3497

10万条

1076

125462

17248

4087

3825

100万条

525524

709991

17514

552526

526370

1000万条

49002000

103003000

18882

49102000

49104000

MySQL MyISAM引擎跨主机查询操作平均执行时间(单位:微秒)

项目记录数

单表select

双表select

insert

update

delete

1万条

358

484

1188

269

298

10万条

375

505

1227

283

322

100万条

3174

5293

1242

4142

7981

1000万条

12302

19920

1261

12355

20449

性能分析

1、 从图表看出,在普通PC服务器上,sql server在执行大规模100万条记录以上的查询效率就很低,到了1000万条规模业务几乎无法开展,单条查询都40多秒。

2、SQL Server插入数据性能受数据规模影响较小,这点与MySQL类似。

主要原因是,插入数据都是从尾部插入的,跟前面的数据规模关系更不大。

3、数据规模越大,MySQL和SQL Server性能差别就越大。

4、MySQL的性能随着数据规模增大线性递减,而SQL Server几乎是指数递减。

5、由于在MySQL 5.0以后MyISAM引擎和InnoDB引擎的性能差别不大,所以就选择了MyISAM引擎来和SQL Server来比较。

6、在低配置服务器和PC机上运行数据库,建议采用Linux加MySQL。

7、

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章