IBM DB2 UDB在各層面,從網(wǎng)絡(luò)協(xié)議的支持到應(yīng)用開(kāi)發(fā)程序的編程接口,數(shù)據(jù)庫(kù)存儲(chǔ)程序及觸發(fā)器,服務(wù)器之間的分布式運(yùn)作,都是基于最新的國(guó)際標(biāo)準(zhǔn),以確保其開(kāi)放性及移植性。ORACLE的許多功能都是使用其私有的,非開(kāi)放性的技術(shù)。例如:ORACLEPL/SQL語(yǔ)言是ORACLE私有的。其存儲(chǔ)程序語(yǔ)句也不符合ANSISQL及ISOSQL的標(biāo)準(zhǔn),客戶(hù)機(jī)/服務(wù)器的編程接口,ORACLE的SQL*NET也不是根據(jù)標(biāo)準(zhǔn)定義的。
處理性能
IBM發(fā)明了關(guān)系型數(shù)據(jù)庫(kù)以及其優(yōu)化技術(shù),并不斷發(fā)展,所以DB2在各種性能測(cè)試中均占領(lǐng)先地位。IBM有信心能在各種標(biāo)準(zhǔn)的測(cè)試環(huán)境下超越ORACLE。DB2在高端應(yīng)用具有過(guò)硬的技術(shù),有眾多超過(guò)1Tera-bytes數(shù)據(jù)量的用戶(hù)實(shí)例。由于ORACLE限制用戶(hù)在未經(jīng)許可的情況下不能公布他們所作的性能測(cè)試,故一般用戶(hù)不易取得ORACLE的比較資料。Oracle超過(guò)1Tera-bytes數(shù)據(jù)量的客戶(hù)實(shí)例很少。
并行能力
DB2的并行版支持位圖索引和對(duì)象關(guān)系,因此,DB2有更好的擴(kuò)展性和性能。Oracle觸發(fā)器無(wú)法支持并行:在一些特殊的引用完整性(referentialintegrity)的限制下,并行也無(wú)法運(yùn)用:如果表格中有大對(duì)象,由于前述的限制(表不能分割),并行也無(wú)法運(yùn)用??傊琌racle在并行系統(tǒng)中沒(méi)有實(shí)現(xiàn)位圖索引和對(duì)象關(guān)系,
分布式數(shù)據(jù)庫(kù)
DB2分布式數(shù)據(jù)庫(kù)的處理(如兩階段提交)及連接功能是建立在DB2的核心中,不需要使用其它的產(chǎn)品附件。性能好,易使用,減少開(kāi)支。ORACLE的分布式功能需要另外購(gòu)買(mǎi)DistributedOption以及SQL*NET等產(chǎn)品才能實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)的連接。
異構(gòu)平臺(tái)支持
在異構(gòu)的環(huán)境中,IBM數(shù)據(jù)庫(kù)方案簡(jiǎn)單、更加無(wú)縫而且比Oracle的成本低; Oracle的異構(gòu)網(wǎng)關(guān)性能差,當(dāng)訪問(wèn)異構(gòu)數(shù)據(jù)庫(kù)時(shí),Oracle缺乏全局的優(yōu)化,導(dǎo)致了過(guò)多的數(shù)據(jù)及網(wǎng)絡(luò)傳輸。
復(fù)制能力
DB2提供業(yè)界最佳效率的和最開(kāi)放的復(fù)制方案;DB2提供自動(dòng)沖突檢測(cè)和解決方法。 Oracle只提供自動(dòng)沖突檢測(cè)和解決方法的例子程序,用戶(hù)須對(duì)例子程序做定制后來(lái)解決復(fù)制沖突
對(duì)電子商務(wù)支持
IBM的Java技術(shù)為業(yè)界所公認(rèn),DB2公認(rèn)為電子商務(wù)基石。DB2提供的JDBC接口,還可用Java語(yǔ)言寫(xiě)儲(chǔ)存過(guò)程和用戶(hù)自定義函數(shù) Oracle的Java技術(shù)僅局限于數(shù)據(jù)庫(kù)和ERP應(yīng)用。
對(duì)商業(yè)智能支持
DB2OLAPServer遠(yuǎn)比Express更易使用和實(shí)現(xiàn)。DB2OLAPServer提供讀/寫(xiě)能力-這對(duì)一些關(guān)鍵性的多維分析擴(kuò)展應(yīng)用如:預(yù)測(cè)和預(yù)算,是非常有用的(Express只支持讀)。IBM的商業(yè)智能解決方案中,擁有數(shù)據(jù)挖掘(IntelligentMiner)工具。 OracleExpress只支持讀的能力,不利于支持預(yù)測(cè)和預(yù)算。Oracle缺乏數(shù)據(jù)挖掘方面的工具。
軟件質(zhì)量與可靠性
DB2的軟件開(kāi)發(fā)實(shí)驗(yàn)室早在1994年便已通過(guò)ISO9000國(guó)際質(zhì)量管理標(biāo)準(zhǔn)的驗(yàn)證與認(rèn)可。故DB2的軟件質(zhì)量是所有數(shù)據(jù)庫(kù)廠家中可靠性最高,故障率最低的數(shù)據(jù)庫(kù)。 ORACLE版本6及版本7在推出后皆需經(jīng)過(guò)無(wú)數(shù)次修訂版升級(jí)才能達(dá)到一定程度的可用度,這給用戶(hù)帶來(lái)極大的不便,并且嚴(yán)重影響到投產(chǎn)系統(tǒng)的可用性及可靠性。
DB2與Sybase比較
開(kāi)放性/可移植性
IBMDB2的編程接口遵照ANSI、X/OPEN標(biāo)準(zhǔn)的CLI(CallLevelInterface)及ANSISQL的嵌入式SQL等開(kāi)放標(biāo)準(zhǔn)。IBMDB2的存儲(chǔ)程序和觸發(fā)器機(jī)制則使用最新的SQL國(guó)際標(biāo)準(zhǔn)并支持標(biāo)準(zhǔn)的開(kāi)放語(yǔ)言如C/C++。在DB2CommonServerV2.1.2(1996)以及DB2UDB(1997)中更加入了用Java語(yǔ)言開(kāi)發(fā)存儲(chǔ)程序和觸發(fā)器的功能。 1.編程接口:SYBASE使用的編程接口不是開(kāi)放的,因?yàn)樗褂玫氖亲约旱腛penClient/OpenServer接口,而不是基于某一標(biāo)準(zhǔn)的接口。2.存儲(chǔ)程序(StoredProcedure):由于SYBASE的CLIENT/SERVER技術(shù)是80年代開(kāi)發(fā)的,沒(méi)有使用SQL92等相關(guān)的標(biāo)準(zhǔn),因此編制存儲(chǔ)程序和觸發(fā)器所用的Transact-SQL也是它們自己專(zhuān)用的。
處理性能
IBM發(fā)明了關(guān)系型數(shù)據(jù)庫(kù)以及其優(yōu)化技術(shù),并不斷發(fā)展,所以DB2在各種性能測(cè)試中均占領(lǐng)先地位。DB2在高端應(yīng)用具有過(guò)硬的技術(shù),有眾多超過(guò)1Tera-bytes數(shù)據(jù)量的用戶(hù)實(shí)例。 SYBASE的優(yōu)化器(OPTIMIZER)不能有效的支持復(fù)雜的查詢(xún)(ComplexQueries)。應(yīng)用程序中稍微復(fù)雜一些的SQL語(yǔ)句,SYBASE的優(yōu)化器就無(wú)法妥善優(yōu)化處理。SYBASE剛剛進(jìn)入海量多處理器MPP的領(lǐng)域,缺乏這方面的經(jīng)驗(yàn)及先例,Sybase大于一個(gè)TB數(shù)據(jù)量的客戶(hù)實(shí)例很少。
并行能力
DB2的并行版支持位圖索引和對(duì)象關(guān)系,因此,DB2有更好的擴(kuò)展性和性能; SYBASE數(shù)據(jù)庫(kù)核心結(jié)構(gòu)較陳舊,尤其在多處理器(SMP)的服務(wù)器上無(wú)法做到軟硬件相配合的延伸與擴(kuò)展(scale),無(wú)法發(fā)揮多處理器的優(yōu)勢(shì)。其單進(jìn)程多線索的結(jié)構(gòu)就無(wú)法象DB2的多進(jìn)程多線索的結(jié)構(gòu)更能有效地在SMP等機(jī)器上運(yùn)行。
高可用性
DB2可以用數(shù)據(jù)庫(kù)及表空間兩種粒度(granularity)對(duì)數(shù)據(jù)作備份與恢復(fù)(BACKUP及RESTORE),并且備份可以在聯(lián)機(jī)方式(ONLINE)下進(jìn)行,不影響多用戶(hù)的同時(shí)使用。這使得DB2能真正地滿(mǎn)足一天24小時(shí)、一星期七天的全天候使用。 SYBASE在BACKUP數(shù)據(jù)庫(kù)及RESTORE數(shù)據(jù)庫(kù)時(shí),需要將系統(tǒng)轉(zhuǎn)為單一用戶(hù)模式以保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的完整性及一致性,并且在BACKUP之后,要運(yùn)行DBCC檢查數(shù)據(jù)的一致性,這使得SYBASE數(shù)據(jù)庫(kù)在可用性方面受到限制。
數(shù)據(jù)完整與可管理性
IBMDB2中數(shù)據(jù)庫(kù)可自動(dòng)的維持兩表間的一致性,無(wú)需再由DBA編程。 SYBASE在其數(shù)據(jù)庫(kù)技術(shù)中引入RI(ReferentialIntegrity數(shù)據(jù)引用完整性)較晚,而且功能有限。例如,當(dāng)表A中的列A是另一個(gè)表B中列B的ForeignKey時(shí),若要?jiǎng)h掉表A中的一個(gè)記錄,在SYBASE中是不允許的,只有通過(guò)觸發(fā)器(Trigger)及存儲(chǔ)過(guò)程(StoredProcedure),才能刪掉表A中的一個(gè)記錄,同時(shí)刪掉表B中的相關(guān)記錄,或把其值設(shè)置為NULL。
異構(gòu)平臺(tái)支持
在異構(gòu)的環(huán)境中,IBM數(shù)據(jù)庫(kù)方案簡(jiǎn)單、更加無(wú)縫而且成本低; Oracle的異構(gòu)網(wǎng)關(guān)性能差,當(dāng)訪問(wèn)異構(gòu)數(shù)據(jù)庫(kù)時(shí),Oracle缺乏全局的優(yōu)化,導(dǎo)致了過(guò)多的數(shù)據(jù)及網(wǎng)絡(luò)傳輸。
復(fù)制能力
DB2提供業(yè)界最佳效率的和最開(kāi)放的復(fù)制方案;DB2支持對(duì)數(shù)據(jù)做預(yù)處理后再?gòu)?fù)制到遠(yuǎn)端,更有效率且網(wǎng)絡(luò)流量少。 Sybase是立即復(fù)制交易,數(shù)據(jù)和網(wǎng)絡(luò)流量大,據(jù)用戶(hù)反映,Sybase的復(fù)制難以實(shí)施。SybaseAdaptiveServerAnywhere和AdaptiveServerEnterprise之間的數(shù)據(jù)復(fù)制不是無(wú)縫連接,且要求整合工作。
對(duì)電子商務(wù)支持
IBM的Java技術(shù)為業(yè)界所公認(rèn),DB2公認(rèn)為電子商務(wù)基石。DB2提供的JDBC接口,還可用Java語(yǔ)言寫(xiě)儲(chǔ)存過(guò)程和用戶(hù)自定義函數(shù) Oracle的Java技術(shù)僅局限于數(shù)據(jù)庫(kù)和ERP應(yīng)用。
對(duì)商業(yè)智能支持
DB2WarehouseManager內(nèi)置了數(shù)據(jù)倉(cāng)庫(kù)管理功能。IBM的商業(yè)智能解決方案中,擁有數(shù)據(jù)挖掘(IntelligentMiner)工具。 Sybase數(shù)據(jù)集市(datamart)沒(méi)有提供倉(cāng)庫(kù)(Warehouse)管理與自動(dòng)化的功能。
軟件質(zhì)量與可靠性
DB2的軟件開(kāi)發(fā)實(shí)驗(yàn)室早在1994年便已通過(guò)ISO9000國(guó)際質(zhì)量管理標(biāo)準(zhǔn)的驗(yàn)證與認(rèn)可。故DB2的軟件質(zhì)量是所有數(shù)據(jù)庫(kù)廠家中可靠性最高,故障率最低的數(shù)據(jù)庫(kù)。數(shù)據(jù)在IBM系統(tǒng)內(nèi)被腐化(corrupted)不但是前所未聞,也是IBM傳統(tǒng)用戶(hù)所不可能忍受的。 SYBASE中的數(shù)據(jù)需要小心的維護(hù),因?yàn)閿?shù)據(jù)在數(shù)據(jù)庫(kù)中有可能被"腐化(corrupted)"而無(wú)法繼續(xù)使用。在沒(méi)有事先修補(bǔ)的情形下,若這些數(shù)據(jù)被備份了,則它們無(wú)法再被使用。為此SYBASE不得不為客戶(hù)提供一個(gè)檢查程序(DBCC)。
DB2與Informix比較
開(kāi)放性/可移植性
IBMDB2UDB在各層面,從網(wǎng)絡(luò)協(xié)議的支持到應(yīng)用開(kāi)發(fā)程序的編程接口,數(shù)據(jù)庫(kù)存儲(chǔ)程序及觸發(fā)器,服務(wù)器之間的分布式運(yùn)作,都是基于最新的國(guó)際標(biāo)準(zhǔn),以確保其開(kāi)放性及移植性。 INFORMIX私有4GL編寫(xiě)的程序只能局限在INFORMIX上運(yùn)行。
處理性能
IBM發(fā)明了關(guān)系型數(shù)據(jù)庫(kù)以及其優(yōu)化技術(shù),并不斷發(fā)展,所以DB2在各種性能測(cè)試中均占領(lǐng)先地位。DB2在高端應(yīng)用具有過(guò)硬的技術(shù),有眾多超過(guò)1Tera-bytes數(shù)據(jù)量的用戶(hù)實(shí)例。 由于INFORMIX是以小型數(shù)據(jù)庫(kù)起家,所以其產(chǎn)品設(shè)計(jì)到目前為止仍有許多小型數(shù)據(jù)庫(kù)的限制。許多用戶(hù)都曾遇到INFORMIX在數(shù)據(jù)存儲(chǔ)、日志管理、備份、恢復(fù)等方面的問(wèn)題。Informix的擴(kuò)展并行選項(xiàng)在支持多用戶(hù)并發(fā)訪問(wèn)時(shí)存在困難。INFORMIX由于缺乏對(duì)大量數(shù)據(jù)的管理經(jīng)驗(yàn),所以其優(yōu)化器技術(shù)也不能針對(duì)大量數(shù)據(jù)做優(yōu)化。
并行能力
DB2EEE能利用HACMP自動(dòng)接替故障節(jié)點(diǎn)正常工作,Informix做不到。DB2EEE已經(jīng)有多年的歷史,頒布了最高的TPC-D和TPC-H基準(zhǔn)測(cè)試值。DB2EEE支持動(dòng)態(tài)位圖索引完成Star-jion,從而既提高了性能又不增加數(shù)據(jù)庫(kù)系統(tǒng)管理員的維護(hù)量。 在并行機(jī)SP上,當(dāng)SP的高性能開(kāi)關(guān)(switch)不能通訊時(shí),InformixXPS數(shù)據(jù)庫(kù)將處于癱瘓狀態(tài).當(dāng)并行機(jī)的節(jié)點(diǎn)出現(xiàn)故障時(shí),InformixXPS數(shù)據(jù)庫(kù)將處于癱瘓狀態(tài),停機(jī)時(shí)間為4到24小時(shí);InformixXPS沒(méi)有備份和恢復(fù)。InformixXPS沒(méi)有對(duì)查詢(xún)的監(jiān)控機(jī)制,有可能某一個(gè)用戶(hù)的一個(gè)查詢(xún)耗盡系統(tǒng)的所有資源而不讓其他用戶(hù)使用。
分布式數(shù)據(jù)庫(kù)
DB2則是通過(guò)核心直接支持XA接口,并且提供許多其它廠商所沒(méi)有的XA先進(jìn)功能,例如工商銀行山東分行的DB2應(yīng)用就大量地使用了DB2XA接口,實(shí)現(xiàn)了與CICS結(jié)合的大型聯(lián)機(jī)事物處理系統(tǒng)(OLTP)來(lái)支持全省通存通兌等應(yīng)用。 INFORMIX對(duì)異構(gòu)分布式數(shù)據(jù)庫(kù)的支持是通過(guò)X/OPEN、XA實(shí)現(xiàn)的。雖然INFORMIX聲稱(chēng)它能夠支持X/OPEN、XA接口,但只是在某幾個(gè)版本通過(guò)附加選件完成。并且在這方面,INFORMIX很少有使用先例,也沒(méi)有這方面的技術(shù)支持。
異構(gòu)平臺(tái)支持
在異構(gòu)的環(huán)境中,IBM數(shù)據(jù)庫(kù)方案簡(jiǎn)單、更加無(wú)縫而且成本低; INFORMIX在數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)之間的連接方面很弱。例如INFORMIX沒(méi)有連接其他數(shù)據(jù)庫(kù)如bbORACLE、SYBASE等數(shù)據(jù)庫(kù)的產(chǎn)品.
復(fù)制能力
DB2提供業(yè)界最佳效率的和最開(kāi)放的復(fù)制方案;DB2提供自動(dòng)沖突檢測(cè)和解決方法。 Informix只支持Informix數(shù)據(jù)庫(kù)間的復(fù)制,若要同其它數(shù)據(jù)庫(kù)相互復(fù)制,則必須購(gòu)買(mǎi)第三方支持軟件。