SQL Server 2000性能测试分析 sql 表最大记录数

操作系统: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

 

posted @ 2010-04-28 19:13  布衣大神  阅读(5628)  评论(0编辑  收藏  举报