DB2是IBM的数据库产品,近年来Oracle、Sybase等数据库的大力发展曾使很多人认为DB2将逐步退出数据库市场,但几年过去了,DB2不但没有退出的迹象,反而一步步发展壮大,逐步夺回失去的市场。在这篇文章中我将其与Oracle、Sybase等数据库作一简单的对比,希望能让读者了解DB2能屹立不倒的原因。
DB2与Oracle比较
开放性/可移植性
IBM DB2 UDB在各层面,从网络协议的支持到应用开发程序的编程接口,数据库存储程序及触发器,服务器之 间的分布式运作,都是基于最新的国际标准,以确保其开放性及移植性。ORACLE的许多功能都是使用其私有的,非开放性的技术。例 如:ORACLEPL/SQL语言是ORACLE私有的。其存储程序语句也不符合ANSISQL及ISOSQL的标准,客户机/服务器的编程接 口,ORACLE的SQL*NET也不是根据标准定义的。
处理性能
IBM发明了关系型数据库以及其优化技术,并不断发展,所以DB2在各种性能测试中 均占领先地位。IBM有信心能在各种标准的测试环境下超越ORACLE。DB2在高端应用具有过硬的技术,有众多超过1Tera-bytes数据量的用户 实例。由于ORACLE限制用户在未经许可的情况下不能公布他们所作的性能测试,故一般用户不易取得ORACLE的比较资料。Oracle超过 1Tera-bytes数据量的客户实例很少。
并行能力
DB2的并行版支持位图索引和对象关系,因此,DB2有更好的扩展性和性能。Oracle触发器无法支持并行:在一些特殊的引用完整性 (referentialintegrity)的限制下,并行也无法运用:如果表格中有大对象,由于前述的限制(表不能分割),并行也无法运用。总 之,Oracle在并行系统中没有实现位图索引和对象关系,
分布式数据库
DB2分布式数据库的处理(如两阶段提交)及连接功能是建立在DB2的核心中,不需要使用其它的产品附件。性能好,易使用,减少开支。ORACLE的分布式功能需要另外购买DistributedOption以及SQL*NET等产品才能实现分布式数据库的连接。
异构平台支持
在异构的环境中,IBM数据库方案简单、更加无缝而且比Oracle的成本低; Oracle的异构网关性能差,当访问异构数据库时,Oracle缺乏全局的优化,导致了过多的数据及网络传输。
复制能力
DB2提供业界最佳效率的和最开放的复制方案;DB2提供自动冲突检测和解决方法。 Oracle只提供自动冲突检测和解决方法的例子程序,用户须对例子程序做定制后来解决复制冲突
对电子商务支持
IBM的Java技术为业界所公认,DB2公认为电子商务基石。DB2提供的JDBC接口,还可用Java语言写储存过程和用户自定义函数 Oracle的Java技术仅局限于数据库和ERP应用。
对商业智能支持
DB2OLAPServer远比Express更易使用和实现。DB2OLAPServer提供读/写能力-这对一些关键性的多维分析扩展应用 如:预测和预算,是非常有用的(Express只支持读)。IBM的商业智能解决方案中,拥有数据挖掘(IntelligentMiner)工具。 OracleExpress只支持读的能力,不利于支持预测和预算。Oracle缺乏数据挖掘方面的工具。
软件质量与可靠性
DB2的软件开发实验室早在1994年便已通过ISO9000国际质量管理标准的验证与认可。故DB2的软件质量是所有数据库厂家中可靠性最 高,故障率最低的数据库。 ORACLE版本6及版本7在推出后皆需经过无数次修订版升级才能达到一定程度的可用度,这给用户带来极大的不便,并且严重影响到投产系统的可用性及可靠 性。
DB2与Sybase比较
开放性/可移植性
IBMDB2的编程接口遵照ANSI、X/OPEN标准的CLI(CallLevelInterface)及ANSISQL的嵌入式SQL等开放标准。IBMDB2的存储程序和触发器机制则使用最新的SQL国际标准并支持标准的开放语言如C/C++。 在DB2CommonServerV2.1.2(1996)以及DB2UDB(1997)中更加入了用Java语言开发存储程序和触发器的功能。 1.编程接口:SYBASE使用的编程接口不是开放的,因为他使用的是自己的OpenClient/OpenServer接口,而不是基于某一标准的接 口。2.存储程序(StoredProcedure):由于SYBASE的CLIENT/SERVER技术是80年代开发的,没有使用SQL92等相关的 标准,因此编制存储程序和触发器所用的Transact-SQL也是它们自己专用的。
处理性能
IBM发明了关系型数据库以及其优化技术,并不断发展,所以DB2在各种性能测试中均占领先地位。DB2在高端应用具有过硬的技术,有众多超过 1Tera-bytes数据量的用户实例。 SYBASE的优化器(OPTIMIZER)不能有效的支持复杂的查询(ComplexQueries)。应用程序中稍微复杂一些的SQL语 句,SYBASE的优化器就无法妥善优化处理。SYBASE刚刚进入海量多处理器MPP的领域,缺乏这方面的经验及先例,Sybase大于一个TB数据量 的客户实例很少。
并行能力
DB2的并行版支持位图索引和对象关系,因此,DB2有更好的扩展性和性能; SYBASE数据库核心结构较陈旧,尤其在多处理器(SMP)的服务器上无法做到软硬件相配合的延伸与扩展(scale),无法发挥多处理器的优势。其单 进程多线索的结构就无法象DB2的多进程多线索的结构更能有效地在SMP等机器上运行。
高可用性
DB2可以用数据库及表空间两种粒度(granularity)对数据作备份与恢复(BACKUP及 RESTORE),并且备份可以在联机方式(ONLINE)下进行,不影响多用户的同时使用。这使得DB2能真正地满足一天24小时、一星期七天的全天候 使用。 SYBASE在BACKUP数据库及RESTORE数据库时,需要将系统转为单一用户模式以保证数据库中数据的完整性及一致性,并且在BACKUP之后, 要运行DBCC检查数据的一致性,这使得SYBASE数据库在可用性方面受到限制。
数据完整与可管理性
IBMDB2中数据库可自动的维持两表间的一致性,无需再由DBA编程。 SYBASE在其数据库技术中引入RI(ReferentialIntegrity数据引用完整性)较晚,而且功能有限。例如,当表A中的列A是另一个表 B中列B的ForeignKey时,若要删掉表A中的一个记录,在SYBASE中是不允许的,只有通过触发器(Trigger)及存储过程 (StoredProcedure),才能删掉表A中的一个记录,同时删掉表B中的相关记录,或把其值设置为NULL。
异构平台支持
在异构的环境中,IBM数据库方案简单、更加无缝而且成本低; Oracle的异构网关性能差,当访问异构数据库时,Oracle缺乏全局的优化,导致了过多的数据及网络传输。
复制能力
DB2提供业界最佳效率的和最开放的复制方案;DB2支持对数据做预处理后再复制到远端,更有效率且网络流量少。 Sybase是立即复制交易,数据和网络流量大,据用户反映,Sybase的复制难以实施。SybaseAdaptiveServerAnywhere和 AdaptiveServerEnterprise之间的数据复制不是无缝连接,且要求整合工作。
对电子商务支持
IBM的Java技术为业界所公认,DB2公认为电子商务基石。DB2提供的JDBC接口,还可用Java语言写储存过程和用户自定义函数 Oracle的Java技术仅局限于数据库和ERP应用。
对商业智能支持
DB2WarehouseManager内置了数据仓库管理功能。IBM的商业智能解决方案中,拥有数据挖掘(IntelligentMiner)工具。 Sybase数据集市(datamart)没有提供仓库(Warehouse)管理与自动化的功能。
软件质量与可靠性
DB2的软件开发实验室早在1994年便已通过ISO9000国际质量管理标准的验证与认可。故DB2的软件质量是所有数据库厂家中可靠性最 高,故障率最低的数据库。数据在IBM系统内被腐化(corrupted)不但是前所未闻,也是IBM传统用户所不可能忍受的。 SYBASE中的数据需要小心的维护,因为数据在数据库中有可能被“腐化(corrupted)”而无法继续使用。在没有事先修补的情形下,若这些数据被 备份了,则它们无法再被使用。为此SYBASE不得不为客户提供一个检查程序(DBCC)。
DB2与Informix比较
开放性/可移植性
IBMDB2UDB在各层面,从网络协议的支持到应用开发程序的编程接口,数据库存储程序及触发器,服务器之间的分布式运作,都是基于最新的国际标准,以确保其开放性及移植性。 INFORMIX私有4GL编写的程序只能局限在INFORMIX上运行。
处理性能
IBM发明了关系型数据库以及其优化技术,并不断发展,所以DB2在各种性能测试中均占领先地位。DB2在高端应用具有过硬的技术,有众多超过 1Tera-bytes数据量的用户实例。 由于INFORMIX是以小型数据库起家,所以其产品设计到目前为止仍有许多小型数据库的限制。许多用户都曾遇到INFORMIX在数据存储、日志管理、 备份、恢复等方面的问题。Informix的扩展并行选项在支持多用户并发访问时存在困难。INFORMIX由于缺乏对大量数据的管理经验,所以其优化器 技术也不能针对大量数据做优化。
并行能力
DB2EEE能利用HACMP自动接替故障节点正常工作,Informix做不到。DB2EEE已经有多年的历史,颁布了最高的TPC-D和 TPC-H基准测试值。DB2EEE支持动态位图索引完成Star-jion,从而既提高了性能又不增加数据库系统管理员的维护量。 在并行机SP上,当SP的高性能开关(switch) 不能通讯时,InformixXPS数据库将处于瘫痪状态.当并行机的节点出现故障时,InformixXPS数据库将处于瘫痪状态,停机时间为4到24 小时;InformixXPS没有备份和恢复。InformixXPS没有对查询的监控机制,有可能某一个用户的一个查询耗尽系统的所有资源而不让其他用 户使用。
分布式数据库
DB2则是通过核心直接支持XA接口,并且提供许多其它厂商所没有的XA先进功能,例如工商银行山东分行的DB2应用就大量地使用了DB2XA 接口,实现了与CICS结合的大型联机事物处理系统(OLTP)来支持全省通存通兑等应用。 INFORMIX对异构分布式数据库的支持是通过X/OPEN、XA实现的。虽然INFORMIX声称它能够支持X/OPEN、XA接口,但只是在某几个 版本通过附加选件完成。并且在这方面,INFORMIX很少有使用先例,也没有这方面的技术支持。
异构平台支持
在异构的环境中,IBM数据库方案简单、更加无缝而且成本低; INFORMIX在数据库与数据库之间的连接方面很弱。例如INFORMIX没有连接其他数据库如bbORACLE、SYBASE等数据库的产品.
复制能力
DB2提供业界最佳效率的和最开放的复制方案;DB2提供自动冲突检测和解决方法。 Informix只支持Informix数据库间的复制,若要同其它数据库相互复制,则必须购买第三方支持软件。
成功案例
DB2在国内、国际的用户群
DB2的用户不胜枚举。它在全球有一百万以上的License和超过四千万的用户,它在全世界有一万一千个企业级用户。全世界70%公司的数据储存在IBM的数据库里。