首页 > 学技术 > 技术网文 > DB2 > 正文

[精华] 有没有人做过DB2/Sybase/Oracle的比较?


来源 chinaunix.net 酷勤网整理

:?  有没有人做过DB2/Sybase/Oracle的比较?



 ibm6000 回复于:2003-02-12 14:25:58

DB2与Oracle比较
特性 DB2 Oracle
开放性/可移植性 IBMDB2UDB在各层面,从网络协议的支持到应用开发程序的编程接口,数据库存储程序及触发器,服务器之间的分布式运作,都是基于最新的国际标准,以确保其开放性及移植性。 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比较

特性 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比较

特性 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的数据库里。


 wangchrist 回复于:2003-02-14 11:17:57

谢谢IBM6000。不过这份回复看上去有一些象IBM公司提供的资料。IBM6000,能否提供你的真实姓名?小弟非常景仰,希望能够经常讨教。 :)


 iwin21cn 回复于:2003-02-14 13:56:24

Sybase是否已经日落黄花了?


 wolfop 回复于:2003-02-14 15:43:46

这篇东西好老吧,还是IBM 收购INFORMIX之前的东西吧。现在XPS也可以用HACMP了。不过说DB2/ORACLE/SYBASE,从一般的评价说SYBASE和ORACLE/DB2不是一个档次的,当然是SYBASE低了。


 chlinux 回复于:2003-02-14 17:07:47

linux、unix 下的免费的商用的数据库有哪些?


 vlife 回复于:2003-02-14 19:17:15

商业用途的数据库很少有免费的吧!


 hero99zy 回复于:2003-02-16 08:20:50

这篇文章把DB2捧上了天,其它数据库都都不行,建议作者擦亮自己的眼睛,在把它拿出来给大家看。


 wolfop 回复于:2003-02-16 17:11:09

引用:原帖由 "vlife"]商业用途的数据库很少有免费的吧!
 发表:


看你怎么理解商业用途咯,SAPDB是GPL的。


 wolfop 回复于:2003-02-16 17:11:41

引用:原帖由 "hero99zy"]这篇文章把DB2捧上了天,其它数据库都都不行,建议作者擦亮自己的眼睛,在把它拿出来给大家看。
 发表:


这种网站上宣传文章嘛,肯定是这样的了。


 magicercn 回复于:2003-03-20 12:35:46

DB2性能没有Oracle好


 heyyok 回复于:2003-03-25 14:02:25

这分明是对DB2的广告嘛!


 iwin21cn 回复于:2003-03-25 21:05:17

那个数据库更深入可能就那个数据库更好


 D2002 回复于:2003-04-03 10:55:32

哈哈,都是拿DB2优势比其他数据库的劣势!
更何况对比不正确, 举一个最简单的例子,作者写到:
-----------------------------------------------------------------------------------------
开放性/可移植性 IBMDB2UDB在各层面,从网络协议的支持到应用开发程序的编程接口,数据库存储程序及触发器,服务器之间的分布式运作,都是基于最新的国际标准,以确保其开放性及移植性。 INFORMIX私有4GL编写的程序只能局限在INFORMIX上运行。 
-----------------------------------------------------------------------------------------
根本上不知道作者在说什么?要表达什么意思?
Informix-4GL只不过是Informix提供的开发工具,难道Informix数据库不能使用 C/C++, Java以及 Windows下的VB,PB来开发吗?都是支持标准CLI接口的!

说DB2好是可以的,但是不希望以这种口气、这种没有道理的比较,其实DB2数据库效率低下是公认的,所以IBM以提高硬件性能来解决,弱化DB2的缺点!
所以,DB2在非IBM机器上使用不多,据说DB2 UDB 8.1的性能有所改善。


 jag 回复于:2003-04-09 22:35:59

唉 有什么可比的呢? 无聊呀


 templine 回复于:2003-04-16 08:15:59

80% SAP ERP用户用的是Oracle Database,大家知道所有系统中最为复杂的我想ERP应该算一个,为什么不是DB2,再看看peoplesoft BEA BAAN,Sibel所有大型系统的大部分选择都是oracle,真不知道作者为什么如此褒扬DB2而贬低其他,郁闷,顺便替其他人发表意见!


 Pythagoras 回复于:2003-04-16 22:22:41

你说的那些企业不能算是大型系统,他们在对比世界顶级企业的数据复杂度时几乎可以忽略不计的。请记住一点,ORACLE只能算是中型规模的数据库。真正大型的数据库是什么?是沃尔玛(零售业)、通用(制造业)、EBAY(电子商务)、花旗集团(银行)、摩根斯丹利(金融)、美联航(交通运输)………………让我告诉你,在所有这些世界生活的方方面面,他们的心脏,跳动的都是DB2。但是往往,在你看来或许会是ORACLE,那不奇怪,因为ORACLE大多是作为单方面应用的前置平台,但前台决不是核心,也担当不了核心。这也就是为什么外界对DB2了解很少而高捧ORACLE的原因了。
至于说DB2的效能很差,那是因为DB2原本就不是设计在低端平台上使用的产品,所以当你用PC服务器,甚至PALM这样的设备来运行它的时候,感觉不好是很正常的。但在一个高并发度,巨大数据量,每时每秒都在进行海量吞吐的环境里,你会发现它表现得最好。事实上,在某些极端恶劣工作压力下,它也是唯一可靠的商用选择。


 self 回复于:2003-04-17 08:51:56

引用:原帖由 "templine"]80% SAP ERP用户用的是Oracle Database,大家知道所有系统中最为复杂的我想ERP应该算一个,为什么不是DB2,再看看peoplesoft BEA BAAN,Sibel所有大型系统的大部分选择都是oracle,真不知道作者为什么如此褒扬DB2而贬低..........
 发表:



据我所知,SAP现在已经转为使用DB2了! :lol:


 kimdai 回复于:2003-04-17 17:29:05

我非常赞同 Pythagoras 的观点,并且选择什么样的数据库系统完全要与应用需求相连系.我多年来一直在使用400上的DB2/400,并且亲身体验在小型机方面,400系统是很稳定的基本上没有宕机.但是用过的SUN+Oracle就经常需要宕机维护.


 永远是新手 回复于:2003-04-22 11:14:22

写的确实比较差


 chaoping 回复于:2003-05-13 21:06:04

引用:原帖由 "Pythagoras"]你说的那些企业不能算是大型系统,他们在对比世界顶级企业的数据复杂度时几乎可以忽略不计的。请记住一点,ORACLE只能算是中型规模的数据库。真正大型的数据库是什么?是沃尔玛(零售业)、通用(制造业)、EBAY(电..........
 发表:


Ebay用的是oracle.
据我所知,Ebay没有DB2的采用。

DB2和oracle地争论,其实业没有什么意义。在中国,还是Oracle用的多的多。

至于Db2的高端,主要在于上面举的那些例子,可能都运行的是IBM的主机。所以就运行DB2了。
其实应该上面的几个公司,估计都是部分DB2,部分Oracle的。


 ita0.1 回复于:2003-06-19 00:39:01

有统计一下10T以上数据库用的是什么数据库吗?甚至50T?


 test1111 回复于:2003-07-31 09:48:06

db2好是黄婆卖瓜,好坏要经得起实际的考验!db2的数据库接口就没有oracle好,而且没有提供数据库级用户,还有,最致命的是:在与db2内删除或修改数据表时,当没有找到记录时竟也警告,虽然sqlca.sqldbcode正确显示100,但是sqlca.sqlcode却显示-1,这可表示错误!如此低级错误,我很难相信db2能一统天下!


 ks99010208 回复于:2003-08-12 18:50:43

:?: 能否那位前辈站在客观的立场,说说目前这几种数据库的情况


 netxay 回复于:2003-08-22 14:30:01

ORACLE 用了较长时间,最近用DB2发现DB2如下:
显然的管理工具(JAVA开发的)不如ORACLE好.
SCHEMA 比ORACle差.
锁比ORACLE差
IBM通病操作比ORACLE复杂.
配置比ORACLE复杂
用户管理太差还要OS来替他管理晕
相关的第三方工具也要差.(没办法由于DB2的差劲)
连一个简单的LOAD都要比ORACLE差.
修改表结构要差.我ALTER一下他居然生成了import语句 .居然是DROP后重建,I 服了YOU!


 jekky 回复于:2003-09-02 09:34:22

^_^。
感觉还是oracle用的多!!
有人听说过NCR的数据仓库吗?


 kelvin 回复于:2004-09-16 16:24:14

db2的性能在某些性能还不如免费的mysql了


 ecloud 回复于:2004-09-19 21:36:49

DB2还敢说Java?????????????
连最起码的第三类驱动都不支持
NND打DB2的补丁,还要手工复制libdb2jdbc.so
TMD你知道这个so究竟是个什么so吗?他竟然连接的一个.a静态库(我说这东西怎么那么吃内存来者)
我考!这就是发展了8个版本的DB2?还敢说什么Java?拜托!


 zero_dot 回复于:2004-11-14 15:51:20

引用:原帖由 "jag"]唉 有什么可比的呢? 无聊呀
 发表:


比较还是非常有必要的,只是要中肯,让我们有个横向比较。呵呵


 daliwa 回复于:2004-11-15 13:55:44

引用:原帖由 "Pythagoras"]你说的那些企业不能算是大型系统,他们在对比世界顶级企业的数据复杂度时几乎可以忽略不计的。请记住一点,ORACLE只能算是中型规模的数据库。真正大型的数据库是什么?是沃尔玛(零售业)、通用(制造业)、EBAY(电..........
 发表:



同意,偶喜欢DB2,
我们公司现在用的是DB2,
在把DB2精通之前,偶是不会去批评DB2的。


 sailorxue 回复于:2004-12-28 09:27:58

Oracle及DB2 database都是我工作范围,也做过它们的后端程式的开发,感觉Oracle强些


 ylw1694 回复于:2004-12-29 17:51:50

我觉得DB2并不好,前段时间我把一个工程从db2 7.2 移植到db2 8.1上,结果在一个执行getDataMeta的函数时出错,提示找不到db2schem.dll,我打开文件夹发现有个db2schema.dll,确实没有那个文件,可这是客户买的正版的,然后我把那个文件复制了一份,改名为db2schem.dll,结果就好用了,你说出这种事能说它好吗?顺便说一下,它好像对长文件名不支持,只能是8.3格式的(windows平台)


 xmivan 回复于:2005-01-02 08:23:56

个人感觉还是DB2好些,ORACLE的很多方面都很霸道


 gmcj 回复于:2005-01-20 00:26:37

DB2比较容易上手..而且性能比ORACLE要好一些


 poorfrog 回复于:2006-06-02 16:34:58

纯属扯淡
informix就不提了
从市场分额来看
oracle约等于ibm,sybase要小很多
从技术来看
大家都能做超大型的数据库,稳定性都不成问题,性能各有胜负(别看那些公测,没有真正公平的测试)
技术特点上其中oracle和db2较早提供了分区和网格计算,sybase在05年发布的版本中提供了分区,在07年将发布有sdc的15.1,也就是也提供了网格计算的支持
从易用性来看
sybase比oracle好,oracle比db2好
从行业看
sybase跟oracle都是各个行业都有,但oracle分额大很多
db2份额相对集中于银行金融业,因为ibm的大机在银行太占优势了

其实数据库的基本原理这些年也没多大变化,只是各家用不同的方式实现同样的功能而已,今天你在这个版本上有些方面性能好,明天对方推出了一个版本性能又比你好一点,所以一直是在比来比去的,所以不要在那里讨论谁的技术好谁的技术不好,那太愚昧了
若以谁市场份额大来证明技术好,那更是无知。市场占有率跟市场策略,公司战略,销售策略等等有关系,所以如果有谁说希望好好学数据库,那我建议他买本最新的数据库原理来看,最好是国外的。


 hiaw 回复于:2006-06-03 18:28:58

受益丰浅!


 myuhan 回复于:2006-06-03 21:34:09

其实我个人觉得无论是哪种数据库,他做的越烂越好,那样的话DBA才能整天忙乎着,才能显示其重要性(嘘,没人听到吧哈哈)


 lizhuo 回复于:2006-06-05 11:19:06

同意楼上,做的越自主管理,dba就越来不重要了


 我笨故我在new 回复于:2006-06-06 08:34:26

整天争论这个实在是没意思
要是谁比谁明显强,那还不是一家的天下,为什么市场份额都很大?别说是靠了机器的优势,这就是整体解决方案 就是N多厂商都眼红而又做不到的优势 
小弟不过是打工的,什么好找工作 又能多赚钱就学什么:)混口饭吃而已




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=13365
转载请注明作者名及原文出处



收藏本页到: