1.2 再谈数据库的可伸缩性
可伸缩性是选择企业数据库系统的主要决定因素之一。它是指处理更多事务、更大量数据、更复杂查询、更复杂实际应用需求的能力。可伸缩性分为硬件和软件两部分要素,这两部分又相互依赖。一个真正可扩展的系统通过它的硬件和软件之间的交互而平稳运行。在事务处理(OLTP)的世界中,可伸缩性主要是描述系统处理更大业务量的能力。其次,它描述了处理更多的复杂应用的能力。在数据仓库(OLAP)的世界里,这一术语一般用于描述一个系统处理更大数据量(VLDB)和对数据进行更复杂的查询的能力。
作为一种行业,数据库和应用软件的制造者花费大量的时间,一边试图去发现如何在硬件上有新的发展,一边想怎样超越硬件允许的能力。在可伸缩性的领域中,这导致了两种基本的方法:向上扩展和向外扩展。在向上扩展的思想下,硬件设计者提供更大和更快速的计算机系统,而软件设计者不得不想如何利用那些系统。在向外扩展思想下,软件设计者连接多个计算机系统建立一个更大的系统网络去处理远远超过一台计算机所能处理的事务。向外扩展和向上扩展各有优点和缺点,而且每种基本方式都有一些变化方式。事实上,用户更倾向于将两种方法混合使用。那么微软在向外扩张的方面都做了些什么呢?
首先,微软重新命名向外扩展联合数据库,并使用分布分区视图(Distributed Partition View, DPV)来连接数据库和数据。在SQL Server 2000中已完成这些。那时微软为客户做的这套解决方案是难以使用的。而微软在DPV上也并没有取得重大的成功。SQL Server 2005对此进行了反省,并对DPV做了一些改变。坦白地讲,在64位版本中,向上扩展比以往表现得都要好。向上扩展拥有每分钟处理超过一百万个事务的能力,有充分的提升空间。向外扩展的最初想法是将多个服务器上比较小的表组合在一起,以减少系统处理时单点的工作量。更明确点,就是决策支持系统(DSS)中的算术和分类函数是很消耗系统进程的。这是一个按照模式手工进行物理分区上的方法,无论现在还是过去,都很难完成。而且执行时不能断开与服务器的连接。
SQL Server在常用硬件并行处理中什么也共享不到。最初的设计要求在处理请求时自动并行,并且关系型数据库模型和SQL查询语言适合并行处理。同时,可以通过对数据分区来增加并行性。通过符合处理器和随机存储器资源的数据分区,增加并行性使得性能大幅提升。向上扩展/不共享无法提供无限制的可伸缩性,而且联合服务器的挑战增加了管理的工作量。虽然理论上向外扩展的性能是没有限制的,但事实上这些系统的性能还是值得怀疑的。并且,在通常情况下,管理这样的系统是很麻烦的,因为很难发现问题并让系统协调地工作。
根据物理分区上的数据,SQL Server 2005引进了一种新的分区方案,可以对一个表内数据进行水平分区。表分区提供了一种通过文件组对大表进行分区的方法,文件组是存储表数据的基本文件结构。表分区考虑到在较小的数据库子集之间分配大量的数据这一DPV基本功能。目标是通过减少表的扫描和缓存内存中的计算结果来加快查询的性能,如果想先看这方面内容,可以看1.6节介绍的表分区。
近5年内数据库系统能够支持的最高业务量已经翻了20倍。从一分钟约50 000个事务到一分钟一百万个事务,这样的进步是硬件、操作系统和数据库管理系统共同发展的结果。举例来说,如果用SQL Server 2000查看2001到2005的TPC-C 非聚簇的结果,你将会看到64位SQL Server 2000每分钟处理一百万个业务。同时,查看基准结果,你将会发现在使用SQL Server 2000的过程中产生了上TB的数据。这是SQL Server的一个分水岭,因为一小时要执行六千万个处理!与此同时,产生了现代应用程序编码习惯。在商业现实的指导下,这些怎样书写代码的习惯不断地进化。拿一个简单的电子商业系统举例来说,除了产品变化以外,它有一个在很大程序上是静态的目录数据库除了产品有所改变时。在安全接口层(Secure Socket Layer SSL)后面有一个订单许可功能。它还有后端处理能力,例如实时的信用卡授权和运输/存货管理。理想情况下,这些处理会在一个数据库中顺序地执行。然而在现实中的众多应用程序中,也许只有信用卡授权和订单捕捉是实时进行的,而其余的采用批处理,在新的框架中为客户提供电子商业应用服务的数据库和软件充当了售货员的角色。今天数据库应用程序和10年前的有很大的区别。
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||