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

[经验分享] 一名小小的SQL Server DBA想谈一下SQL Server的能力

[复制链接]

尚未签到

发表于 2015-7-5 12:19:32 | 显示全部楼层 |阅读模式
一名小小的SQL Server DBA想谈一下SQL Server的能力
  百度上暂时还没有搜索到相关的个人写的比较有价值的文章,至少在中文网络的世界里面没有
  但是在微软的网站有这样一篇文章:《比较 SQL Server 与 IBM DB2》
  文章从下面几个方面进行了对比
  1、TCO和ROI
2、性能和可扩展性
3、高可用性
4、安全
5、管理
6、开发效率
7、商业智能和数据仓库
8、OLTP
9、SAP集成
  文章介绍得比较牛逼
性能与可扩展性
SQL Server 的性能和可扩展性优于IBM DB2.


  • 基准显示SQL Server 能够掌控大型工作负荷:

    • 在TPC-C 基准测试总,SQL Server每分钟的事务处理超过1百万,并且在 Windows平台上拥用最好的性能.
    • 在 TPC-H 基准的10项比较中,有7项SQL Server优于DB2.
    • 在一项 SAP-SD 认证基准中 支持 93,000个并发用户,相当于全球最大的SAP客户的10倍以上.
    • 在新的OLTP基准标准-TPC-E中,SQL Server 是无可争议的领先者.
    • 阅读最新的 SQL Server 2008 基准结果.
      
  • SQL Server 2008 包括最新的性能与可扩展性 ,能够优于DB2为大型工作负荷提供更好的性能:

    • o 改进分区表、索引、范围及其他
    • o 压缩支持符合甚至超越了IBM DB2 UDB资源管理,能够控制更细的CPU和内存资源
    • o 性能数据收集器可以跨企业定位问题、调整和监控SQL Server实例
    • o 高度调整的ETL引擎  目前保持了世界ETL性能纪录

成功案例


  • Citi Group runs Lava market montage解决方案 运行在SQL Server上, 达到每秒200,000次以上的更新频率
  • Xerox 采用SQL Server管理每天7百万的事务处理,达到99.999%运行时间
  • American Power Conversion 迁移至 SQL Server企业版---实现100%的快速响应时间,节省费用800,000美元
  • VHA  从DB2的大型机迁移至SQL Server—提升了25%效率, 降低了89%的复制时间, 显著降低了总拥有成本.
  • Countrywide Home Loans 选择了SQL Server以提高性能,获得高可用性
  • Microsoft  IT  使用SQL Server来驱动 27TB的全球法定安全工具
  • Nasdaq, 全球领先的科技股交易,实时定票系统,采用SQL Server处理高达每秒5000的事务量.
  • Unisys UPSS system, 在 SQL Server上架构23 TB的数据仓库,进入了数据仓库峰值负荷的Top10行列.
  • Premier BankCard 将12 TB的数据仓库和OLTP数据库升级到SQL Server.
  • Danske Supermarket  在 SQL Server分析服务上运行600GB的的多维分析,以及10TB的商业智能数据

  还有一个帖子《sqlserver的并发处理能力到底如何呀?高手都说说?》
  
  
  其实这个题目是too open ended,无论大家认为它的定位在Oracle之下,还是只适合于中小型数据库,我只想说一下它在我眼中的能力
  我相信我写完后其他数据库爱好者就会出来喷了,Oracle的、MySQL的,毕竟这种文章跟《C#和JAVA哪家强》之类的文章是比较类似的。
  
  我在这篇文章主要讲两个大家最care的方面:数据量、性能和功能
  其实大家刚开始用数据库最关心的莫过于OLTP场景里面的性能了还有这个数据库系统的所能够hold住的数据量
  
  一、hold住大数据量
  SQL Server作为一个成熟的商业数据库,对于hold住大数据量是没有问题的
  正如上面文章提到的:Microsoft  IT  使用SQL Server来驱动 27TB的全球法定安全工具
  
  在本人所在公司也有一些比较大的数据库,数据库体积大的也有7~8TB,小的几十MB
DSC0000.jpg
  很多人说:“SQL Server不能处理海量数据,数据量一大SQL Server就处理不了!”
  我想问:“海量数据究竟有多少数据?1亿?10亿?100亿?1TB?10TB?100TB?”
  反正我天天都对着这麽多数据(上TB也有、上十亿条也有),还是这样用SQL Server管理它们。
  
  我这里想说明一下如何比较数据量:比较数据量应该用数据库的实际占用体积大小来比较,而不应该用单表数据量的大小来比较!
  这里有一个例子:之前我们数据库服务器里有一个表,有六个字段,都是int类型,单表数据量已经1亿+了,但是数据库的大小只有20G不到
  在我眼中只是一个比较小的数据库,虽然它的数据量比较惊人
  在园友马非码的博客里曾经写到一篇文章《我是如何在SQLServer中处理每天四亿三千万记录的》,文章是非常多的推荐
  但是在我眼里,文章没有多少新意,正如我刚才说的,四亿三千万数据可能就OS内核->存储设备这种架构,用户程序和OS内核之间存在一套IO接口
  同样,OS内核和存储设备之间一样存在一套IO接口,有异步,同步,存储设备的Write Through和Write Back等参数
  而Linux操作系统的IO行为跟Windows有很多不同之处的,两者的文件系统的不同,两者的IO设备驱动不一样,IO调度模型不一样
DSC0001.jpg
  由于本人对Windows和Linux的IO调度没有太深入研究,大家可以参考下面两篇文章
  Linux五种IO模型性能分析
  Windows五种IO模型性能分析
  
  其实一般不是太差的数据库都可以达到上千的TPS,上万的QPS,上万的并发连接
  由于本人没有亲自测试也没有环境,就不再详细说了
  
  之前看过一本书,里面说Linux的IO调度模型对于使用网络存储的机器来讲更加好,上层的一个请求,对于下层少量的网络数据包
  而Windows上层的一个IO请求会对网络存储发出比Linux还多的网络数据包,好像是iSCSI协议,所以运行在Linux上的Oracle和MySQL会更胜一筹
  
  但是可以说,SQL Server针对Windows系统做过特别优化,在TPS和QPS各方面测试中不会跟主流数据库相差很远,不然的话SQL Server早就从地球上消失了
  三、SQL Server的功能
  
  本人觉得SQL Server的功能做得是比较完善了,最起码对于一个商业数据库,其他竞争对手有的功能,SQL Server基本都有
  例如限制资源使用这个功能
DSC0002.jpg
  SQL Server的资源调控器可以针对登录用户限制它所使用的CPU、内存、IO资源
  而MySQL的Query Throttling针对的是
  限制用户每小时的修改数据库数据的数量
  控制用户每小时打开新连接的数量
  限制有多少用户连接MYSQL服务器
  
  MySQL的Query Throttling偏向于查询方面的
  我这里不评论好坏,我只想说各有各的优缺点
  
  到目前为止,我还未发现其他数据库有的功能,SQL Server没有的,或者本人才疏学浅,可能Oracle有的功能而SQL Server没有的
  比如:Oracle中的位图索引,而在SQL Server中位图过滤(Bitmap)运算符
  相关文章:《SQL Server优化器特性-位图过滤(Bitmap)》
  
  很多时候只是大家的实现方式不一样已而,而不代表SQL Server没有
  总结
  本人做DBA的时间不长,在学校开始接触,到毕业之后公司使用SQL Server,到现在由它来带我进入DBA这个行业
  对于SQL Server这个产品,本人是比较感激的,每天跟各位SQL Server爱好者讨论如何使用它,不亦乐乎
  
  只可惜SQL Server在中国国内市场越来越不活跃,不知道以后会不会有尽头。
  
  如有不对的地方,欢迎大家拍砖o(∩_∩)o

运维网声明 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-83346-1-1.html 上篇帖子: SQL Server 2005教程:如何创建修改分区表和如何查看分区表(经典) 下篇帖子: SQL Server 权限管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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