设为首页 收藏本站
查看: 961|回复: 0

[经验分享] SQL Server 2000性能测试分析 sql 表最大记录数

[复制链接]

尚未签到

发表于 2015-7-5 09:58:11 | 显示全部楼层 |阅读模式
  操作系统: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
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-83290-1-1.html 上篇帖子: 关于SQL SERVER中的FLOAT转换为VARCHAR 下篇帖子: 如何在XP系统下安装Sql server 2000(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表