- 論壇徽章:
- 0
|
數(shù)據(jù)庫(kù)市場(chǎng)份額比較
Sybase公司成立于1986年,立足于在開放系統(tǒng)平臺(tái)上研制具有Client/Server體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)軟件產(chǎn)品。 當(dāng)時(shí)的Sybase公司由于有效地汲取了其它RDBMS設(shè)計(jì)過程中的先進(jìn)技術(shù)和概念,以滿足聯(lián)機(jī)事務(wù)處理(OLTP)應(yīng)用的高性能要求為目標(biāo),同時(shí)加強(qiáng)聯(lián)網(wǎng)對(duì)異構(gòu)數(shù)據(jù)源的開放互聯(lián),使Sybase取得了很大成功,非凡是Sybase有效的拓展市場(chǎng)行動(dòng),使Sybase曾一度成為世界數(shù)據(jù)庫(kù)市場(chǎng)增長(zhǎng)最快的產(chǎn)品。然而,由于產(chǎn)品本身的技術(shù)問題,不能提供對(duì)大型多處理器系統(tǒng)的支持,使得Sybase的市場(chǎng)份額急劇下降,并出現(xiàn)連續(xù)的虧損。1997年虧損額為5540萬美元,1998年僅第一季度就虧損了8120萬美元。1999年初,Sybase裁員又600人,將近其全體員工的10%。2001年第一季度沒有虧損,但令人擔(dān)心的是比2000年同期許可證(license)收入下降了10.7%。 早在1997年,聞名的市場(chǎng)分析公司Gartner Group就已將Sybase從”Big 5” DBMS市場(chǎng)領(lǐng)先者的名單中刪除。
根據(jù)Gartner/Dataquest近期發(fā)布的2001年度數(shù)據(jù)庫(kù)市場(chǎng)份額統(tǒng)計(jì)報(bào)告, 在Gartner/Dataquest報(bào)告中Oracle依然在主流操作系統(tǒng)Unix和linux, Windows NT/2000/XP上的關(guān)系數(shù)據(jù)庫(kù)市場(chǎng)上占據(jù)絕對(duì)的領(lǐng)先地位,在UNIX上占63%, Windows+Unix上占49.9%。在關(guān)系型數(shù)據(jù)庫(kù)市場(chǎng)(包括AS/400,Mainframe),Oracle以39.8%仍然處于領(lǐng)先地位。
根據(jù)最新的FactPoint的調(diào)查,Oracle數(shù)據(jù)庫(kù)依然是Fortune 100公司的首選數(shù)據(jù)庫(kù),其中51%的Fortune 100公司選用Oracle Database作為構(gòu)建企業(yè)的傳統(tǒng)應(yīng)用和電子商務(wù)平臺(tái)。
FactPoint Group報(bào)告的調(diào)查結(jié)果:
1、 Oracle仍然是Fortune 100公司的首選數(shù)據(jù)庫(kù)平臺(tái),Oracle的數(shù)據(jù)庫(kù)市場(chǎng)份額遠(yuǎn)遠(yuǎn)超過其它競(jìng)爭(zhēng)對(duì)手,其市場(chǎng)份額是第二名的2.5倍。
2、 51%的Fortune 100公司選用Oracle數(shù)據(jù)庫(kù)來構(gòu)建企業(yè)的傳統(tǒng)應(yīng)用和電子商務(wù)應(yīng)用平臺(tái)。
3、 Fortune 100所選用的主流應(yīng)用軟件絕大多數(shù)選用Oracle數(shù)據(jù)庫(kù)平臺(tái),其中:100%的Oracle 應(yīng)用產(chǎn)品;76%的SAP; 72%的PeopleSoft; 81%的Siebel; 73%的i2都選用Oracle數(shù)據(jù)庫(kù)平臺(tái)。
4、 Oracle數(shù)據(jù)庫(kù)產(chǎn)品滲透到Furtune100公司的各個(gè)業(yè)務(wù)領(lǐng)域, 其中75%的財(cái)務(wù)應(yīng)用, 72%的人力資源應(yīng)用, 68%的客戶關(guān)系治理應(yīng)用和72%的供給鏈治理應(yīng)用都采用Oracle數(shù)據(jù)庫(kù)平臺(tái)。
5、 Oracle數(shù)據(jù)庫(kù)被Furtune100的客戶評(píng)選為技術(shù)最好和與主流應(yīng)用軟件集成最好的數(shù)據(jù)庫(kù)平臺(tái)。
FactPoint Group調(diào)查涉及了與Fortune100公司的IT經(jīng)理們的400次會(huì)談,其調(diào)查結(jié)果根據(jù)Fortune 100公司的數(shù)據(jù)庫(kù)產(chǎn)品的使用狀況,真實(shí)體現(xiàn)了當(dāng)今企業(yè)中數(shù)據(jù)庫(kù)部署與使用的狀況,根據(jù)FactPoint Group的調(diào)查Oracle數(shù)據(jù)庫(kù)技?jí)喝盒,仍然保持了企業(yè)數(shù)據(jù)庫(kù)市場(chǎng)份額的領(lǐng)頭羊地位。
ORACLE 與 SYBASE 技術(shù)先進(jìn)性的比較
Oracle數(shù)據(jù)庫(kù)與Sybase數(shù)據(jù)庫(kù)相比,無論從體系架構(gòu)、并行支持、完整性控制等各方面均有很大的優(yōu)勢(shì)。
1、體系結(jié)構(gòu)的比較
Oracle采用多線索多進(jìn)程體系結(jié)構(gòu),直接在內(nèi)核中支持分布式數(shù)據(jù)庫(kù)操作、多線索處理、并行處理以及聯(lián)機(jī)事務(wù)處理等 。Oracle企業(yè)級(jí)服務(wù)器從結(jié)構(gòu)上說,同時(shí)支持集中式多用戶環(huán)境、Client/Server、分布式處理和Internet計(jì)算結(jié)構(gòu);從技術(shù)上說,為應(yīng)用程序及系統(tǒng)開發(fā)人員實(shí)現(xiàn)了透明的網(wǎng)絡(luò)環(huán)境、混合網(wǎng)絡(luò)結(jié)構(gòu)以及分布式數(shù)據(jù)治理等
Sybase采用單進(jìn)程多線索體系結(jié)構(gòu),其核心是SQL Server(現(xiàn)在為與Microsoft SQL Server區(qū)別,改名為Adaptive Server EnterPRise),在Client/ Server體系結(jié)構(gòu)的基礎(chǔ)上,架構(gòu)了復(fù)制服務(wù)器(Replication Server)和多功能通用網(wǎng)關(guān)(Omni SQL Gateway,現(xiàn)在叫Enterprise CONNECT)等部件,從而形成了軟件產(chǎn)品系列。
2、多線索多進(jìn)程與單進(jìn)程多線索的比較
Oracle和Sybase都采用多線索。采用多線索的模式,能用較少的線索治理大量的用戶進(jìn)程;并且,線索進(jìn)程是動(dòng)態(tài)可調(diào)整的,當(dāng)用戶數(shù)增加時(shí), 線索進(jìn)程也會(huì)階段性地自動(dòng)增加;當(dāng)用戶數(shù)減少時(shí),線索進(jìn)程也會(huì)自動(dòng)減少。多線 索結(jié)構(gòu),大大降低了Oracle和Sybase對(duì)系統(tǒng)資源的占用,提高了系統(tǒng)資源的利用率。
對(duì)于Oracle的體系結(jié)構(gòu),在集中式多用戶環(huán)境下,每個(gè)用戶單獨(dú)占用一個(gè)服務(wù)器進(jìn)程;在Client/Server 和Internet方式下可以采用多個(gè)用戶共享進(jìn)程,以多線索方式執(zhí)行用戶的請(qǐng)求。另外,針對(duì)非凡級(jí)別的用戶,可以單獨(dú)占用一個(gè) 服務(wù)器進(jìn)程,實(shí)現(xiàn)最優(yōu)級(jí)別的用戶請(qǐng)求。Oracle的服務(wù)器進(jìn)程是用來同時(shí)處理 數(shù)據(jù)庫(kù)請(qǐng)求的,它們從請(qǐng)求隊(duì)列中拿出申請(qǐng),進(jìn)行語法分析、權(quán)限檢查以及一系列的內(nèi)部操作,并協(xié)調(diào)Oracle其他后臺(tái)進(jìn)程,以共同完成申請(qǐng)的處理,并把操 作結(jié)果返回到回答隊(duì)列。Oracle多服務(wù)器進(jìn)程結(jié)構(gòu),能實(shí)現(xiàn)數(shù)據(jù)庫(kù)事務(wù)的并行 處理,提高并發(fā)事務(wù)處理的響應(yīng)速度。并且多服務(wù)器結(jié)構(gòu)具有非常靈活的擴(kuò)充 性,當(dāng)硬件平臺(tái)處理能力提高時(shí),服務(wù)器進(jìn)程的個(gè)數(shù)也能隨之增加,數(shù)據(jù)庫(kù)性 能也隨之提高。多服務(wù)器結(jié)構(gòu),避免了單服務(wù)器結(jié)構(gòu)中很輕易造成的服務(wù)器進(jìn) 程瓶頸現(xiàn)象,也避免了因此而引起的單服務(wù)器進(jìn)程死鎖的現(xiàn)象。
Sybase采用單進(jìn)程多線索方式,用戶請(qǐng)求都由一個(gè)進(jìn)程來進(jìn) 行總的調(diào)度和治理。在單服務(wù)器并采用單一的Client/Server模式下其對(duì)數(shù)據(jù)庫(kù)的治理比較簡(jiǎn)單,內(nèi)存資源占用較少,在并發(fā)用戶數(shù)較少的情況下,其對(duì)系統(tǒng)資源的利用率比采用多進(jìn)程方式要高;但同時(shí),當(dāng)并發(fā)用戶數(shù)達(dá)到一定的數(shù)量時(shí),會(huì)引起系統(tǒng)處理性能大大下降,和服務(wù)器進(jìn)程瓶頸及死鎖等現(xiàn)象;同時(shí)系統(tǒng)的可擴(kuò)展余地非常狹窄。
3、系統(tǒng)集成度
Oracle服務(wù)器上的Oracle多線索多進(jìn)程結(jié)構(gòu)以及并行查詢,分布式數(shù)據(jù)庫(kù)、高級(jí)復(fù)制等功能都是 直接在Oracle核心中實(shí)現(xiàn)的,無需添加額外的服務(wù)器,不要求額外的系統(tǒng)配置 ,也不會(huì)帶來額外的的系統(tǒng)治理負(fù)擔(dān),更不會(huì)產(chǎn)生由API帶來編程的變化。
Sybase由實(shí)現(xiàn)不同功能的不同服務(wù)器組成(ASE, Replication Server, Enterprise Connect, IQ等) ,眾多的服務(wù)器要 求能協(xié)調(diào)一致地工作,同時(shí)又要滿足高可靠性和高可用性的要求。這不僅對(duì)硬件設(shè)備提出了很高的要求,對(duì)系統(tǒng)治理來講也提出了極高的要求。Sybase對(duì)用戶是不透明的,許多操作需要編程人員來治理和操縱,而且后來引入的應(yīng)用程 序接口(API) CT- Lib與以前版本(DB-Lib)不兼容,大大加重了編程人員的負(fù)擔(dān),延長(zhǎng)了開發(fā)周期。
4、聯(lián)機(jī)事務(wù)處理
聯(lián)機(jī)事務(wù)處理是比較非凡的一類應(yīng)用,一般體現(xiàn)為同時(shí)工作的用戶數(shù)較 多,對(duì)數(shù)據(jù)的操作申請(qǐng)比較簡(jiǎn)單,但要求比較快的響應(yīng)時(shí)間。針對(duì)這類應(yīng)用, 計(jì)算機(jī)系統(tǒng)必須提供一個(gè)能支持大量同時(shí)工作的用戶,并提供比較大的系統(tǒng)吞吐量來消化用戶的大量申請(qǐng)。具體來說,就是要有較好的用戶治理手段、有效的內(nèi)存緩沖區(qū)治理、優(yōu)化的I/0進(jìn)程控制、有效的系統(tǒng)封鎖處理、快速的網(wǎng)絡(luò)治理功能等等。因此,為了在聯(lián)機(jī)事務(wù)處理應(yīng)用中達(dá)到較好的性能,應(yīng)以適用于聯(lián)機(jī)事務(wù)處理的硬件平臺(tái)、操作系統(tǒng)、網(wǎng)絡(luò)環(huán)境為基礎(chǔ),配合數(shù)據(jù)庫(kù)處理,才能實(shí)現(xiàn)理想的聯(lián)機(jī)事務(wù)處理。
Oracle的多線索技術(shù)在相同硬件環(huán)境下,所支持的用戶數(shù)是其他數(shù)據(jù)庫(kù) 系統(tǒng)的5至10倍。Oracle的多進(jìn)程技術(shù)從根本上加快每一個(gè)用戶申請(qǐng)的處理速度,非凡是在大量申請(qǐng)需要處理的情況下,它能保持內(nèi)存中請(qǐng)求隊(duì)列在大部分時(shí)間處于隊(duì)列空的狀態(tài)。更為靈活的是,Oracle多進(jìn)程的數(shù)量是動(dòng)態(tài)可調(diào)整的,使用相應(yīng)的系統(tǒng)參數(shù),可以控制服務(wù)器進(jìn)程個(gè)數(shù)、當(dāng)應(yīng)用環(huán)境、工作量、硬件環(huán)境等發(fā)生變化時(shí),可以構(gòu)造不同的Oracle服務(wù)器進(jìn)程,使用戶的申請(qǐng)?jiān)谌魏螘r(shí)候都能保持較快的處理效率。
數(shù)據(jù)庫(kù)共享緩存治理,是影響聯(lián)機(jī)事務(wù)處理性能的一個(gè)要害因素,能充分且有效地利用高速緩存,就能大大減少許多重復(fù)操作,大大減少不必要的I/O,從而提高語句的執(zhí)行速度。Oracle有一套十分有效的內(nèi)存高速緩存治理的技術(shù),編譯后的SQL語句共享緩沖區(qū)、預(yù)讀入技術(shù)、日志記錄緩存等。
在多用戶并發(fā)工作的情況下,寫/寫沖突及讀/寫沖突是主要的影響實(shí)時(shí)操作效果的因素,是聯(lián)機(jī)事務(wù)需要解決的主要問題。Oracle采用行級(jí)封鎖來解決寫/寫沖突,當(dāng)用戶要對(duì)一張表進(jìn)行修改或更新操作時(shí),會(huì)自動(dòng)鎖定要修改的記錄“行”,而不是整張表。當(dāng)其他用戶同時(shí)也要修改同一張表時(shí),也鎖定各自需要修改的記錄“行”,只有在兩個(gè)或多個(gè)用戶需要修改同一記錄行時(shí),才會(huì)出現(xiàn)排隊(duì)等待鎖資源釋放的現(xiàn)象。這種行級(jí)封鎖大大降低了沖突的機(jī)率,與頁(yè)級(jí)鎖或表級(jí)鎖相比,大大提高了系統(tǒng)的吞吐量。
Oracle采用讀一致快照技術(shù)來解決讀/寫沖突,而不是采用傳統(tǒng)的讀鎖方式。當(dāng)一用戶對(duì)某一記錄進(jìn)行修改時(shí),系統(tǒng)會(huì)自動(dòng)生成一個(gè)該記錄的拷貝, 稱為讀一致性快照。而另一用戶同時(shí)要讀取這一記錄行時(shí),讀操作將讀取讀一致快照的內(nèi)容,而不用加讀鎖。因此讀操作將不被寫操作所阻塞;同樣,寫操作也同樣不會(huì)被讀操作所阻塞?梢奜racle的行級(jí)封鎖及讀一致性快照技術(shù),使得在大量用戶并發(fā)工作的聯(lián)機(jī)事務(wù)處理環(huán)境下,用戶發(fā)生沖突而排隊(duì)等候的現(xiàn)象減少到了最低,大大提高了系統(tǒng)的吞吐量,提高實(shí)時(shí)響應(yīng)的速度。
另外,Oracle還有靈活的查詢優(yōu)化機(jī)制,確保查詢操作的快速完成, 如基于成本的智能優(yōu)化、哈希方法、分布式查詢優(yōu)化等,都能以不同的使用方法,為不同層次的用戶自動(dòng)提供最佳的優(yōu)化方案, 而無需用戶編程指明。
為了能提高事務(wù)的吞吐量和低的響應(yīng)時(shí)間,Sybase主要采用了支持存儲(chǔ)過程(Stored Procedure)、Log成組提交以及基于成本的優(yōu)化等技術(shù)。其設(shè)計(jì)思想分別和Oracle中數(shù)據(jù)庫(kù)共享緩存治理以及查詢優(yōu)化機(jī)制相似,從功能處理上沒有Oracle的全面和有效。長(zhǎng)期以來,Sybase采用頁(yè)級(jí)封鎖機(jī)制來解決寫/寫沖突,使用戶的并發(fā)事務(wù)受到很大限制,集中體現(xiàn)在用戶的并發(fā)事務(wù)達(dá)到一定數(shù)量時(shí),系統(tǒng)實(shí)現(xiàn)上輕易陷入癱瘓的狀態(tài)。在ASE的新版本中才引入行級(jí)鎖,然而,Sybase的行級(jí)鎖并不徹底,它采用可升級(jí)的行級(jí)鎖,可升級(jí)的行級(jí)鎖隨著系統(tǒng)活動(dòng)級(jí)別的增加,為治理內(nèi)存的使用,會(huì)升級(jí)原有鎖的級(jí)別——當(dāng)系統(tǒng)并發(fā)訪問較多時(shí),會(huì)引起行級(jí)鎖升級(jí)為頁(yè)級(jí)鎖。所以系統(tǒng)對(duì)大量并發(fā)的控制并沒有實(shí)質(zhì)的改善。例如,用戶A在修改某個(gè)客戶信息,將可能影響用戶B修改其它客戶信息。不必要的資源競(jìng)爭(zhēng) ,較低的系統(tǒng)并發(fā)性,對(duì)要害業(yè)務(wù)的OLTP系統(tǒng)是無法忍受的。
由于缺少讀一致性的多版本模式,Sybase不能提供一致性和并發(fā)性兼得的解決方案。為了使讀操作不阻塞寫操作,Sybase使用臟讀(Dirty Read)技術(shù)。雖然提高了性能和并發(fā)性,但帶來了讀到的數(shù)據(jù)可能與數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致的結(jié)果。另一方面,假如要保證讀一致性,Sybase采用加讀鎖技術(shù),而用戶A的讀鎖不能與用戶B的寫鎖同時(shí)加在同一個(gè)數(shù)據(jù)塊上,因此,用戶A必須等待,直到用戶B的事務(wù)處理結(jié)束,釋放寫鎖后,才能繼續(xù)進(jìn)行讀操作;蛘哂脩鬊必須等待用戶A讀操作完成后才能進(jìn)行寫操作。讀和寫操作互相阻塞,大大增加了死鎖的可能。
5、硬件平臺(tái)及操作系統(tǒng)的適用性
Oracle能支持幾乎所有常見的硬件平臺(tái)及操作系統(tǒng),這種支持不是簡(jiǎn)單 的內(nèi)核移植,而是針對(duì)不同的硬件平臺(tái)及操作系統(tǒng),充分利用不同硬件平臺(tái)以及操作系統(tǒng)的優(yōu)勢(shì),并在數(shù)據(jù)處理方面加以發(fā)揮。
根據(jù)近年來美國(guó)TPC組織提供的測(cè)試報(bào)告,Oracle在目前國(guó)際上流行的絕大多數(shù)硬件平臺(tái)上均獲得了最高的TPC-C測(cè)試值。其中最新的測(cè)試值為824,164 tpmC。這些創(chuàng)記錄的結(jié)果,在數(shù)據(jù)庫(kù)市場(chǎng)中尚無其他數(shù)據(jù)庫(kù)產(chǎn)品能望其項(xiàng)背。另?yè)?jù)美國(guó)聞名的<>對(duì)幾家主要數(shù)據(jù)庫(kù)廠家的測(cè)試結(jié)果,Oracle在數(shù)據(jù)庫(kù)的數(shù)據(jù)裝載、數(shù)據(jù)查詢、數(shù)據(jù)庫(kù)讀/寫操作等方面,都獲得絕對(duì)優(yōu)勢(shì),并連續(xù)幾年占據(jù)評(píng)選的第一名,F(xiàn)在絕大多數(shù)硬件公司都以O(shè)racle為數(shù)據(jù)庫(kù)基礎(chǔ)平臺(tái)進(jìn)行測(cè)試,也說明Oracle的確讓不同的硬件平臺(tái)發(fā)揮出其最佳的效能。
Sybase支撐的硬件平臺(tái)及操作系統(tǒng)則比較有限,缺乏對(duì)MPP系統(tǒng)的支持。其最高的TPC-C測(cè)試值僅為60,366tpmC.
6、并行處理
Oracle的體系結(jié)構(gòu)不僅能大大加快系統(tǒng)的處理速度,增大系統(tǒng)的吞吐量 ,還能充分利用計(jì)算機(jī)硬件資源。以對(duì)稱多處理SMP結(jié)構(gòu)中,Oracle的多服務(wù)器進(jìn)程能均衡地分散在多個(gè)CPU上,使SMP中的多個(gè)CPU同時(shí)處理請(qǐng)求隊(duì)列中的用戶請(qǐng)求,從而達(dá)到利用所有CPU同時(shí)工作,并且均分負(fù)載的目的。Oracle的并行查詢功能將SQL的查詢語句,索引建立語句,數(shù)據(jù)加載,備份/恢復(fù)以及用戶程序進(jìn)行分解,分配給多個(gè)CPU同時(shí)工作以實(shí)現(xiàn)語句級(jí)的并行處理,并且均分負(fù)載的,以上的并行處理過程,對(duì)用戶來說是透明的,完全集成在數(shù)據(jù)庫(kù)內(nèi)核中完成;支持應(yīng)用程序及數(shù)據(jù)庫(kù)的性能縮放,即CPU個(gè)數(shù)增加時(shí),數(shù)據(jù)庫(kù)的處理速度和應(yīng)用程序的執(zhí)行速度能隨之增加,反之亦然,均不需要修改程序或重構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)。通過數(shù)據(jù)分區(qū)技術(shù),Oracle還可以支持并行的DML操作(插入、刪除、修改)。
在松散藕合型的Cluster及海量并行處理結(jié)構(gòu)中,Oracle并行服務(wù)器(Real application Cluster,以前稱為OPS)能充分發(fā)揮松散藕合型計(jì)算機(jī)結(jié)構(gòu)的特點(diǎn)。Oracle公司在1989年率先推出Parallel Server選件,以支持這種體系結(jié)構(gòu)(Oracle6.2版)。隨著Cluster技術(shù)自身的成熟,以及Oracle對(duì)這一技術(shù)的經(jīng)驗(yàn),Oracle Parallel Server目前已能支持幾乎所有的Cluster群機(jī)系統(tǒng)。在share-nothing或shared-disk模式的群機(jī)系統(tǒng)上,Oracle Parallel Server均可以實(shí)現(xiàn)多節(jié)點(diǎn)共享數(shù)據(jù)庫(kù),并自動(dòng)并行處理及均分負(fù)載,在數(shù)據(jù)庫(kù)故障時(shí)進(jìn)行容錯(cuò)和無斷點(diǎn)恢復(fù)處理。
Oracle并行服務(wù)器利用共享磁盤的技術(shù),數(shù)據(jù)庫(kù)駐留在共享磁盤中,松散耦合中的所有計(jì)算機(jī)均能同時(shí)對(duì)同一份數(shù)據(jù)庫(kù)映像進(jìn)行存儲(chǔ)。另外,Oracle與松散耦合型計(jì)算機(jī)結(jié)構(gòu)相結(jié)合,還能大大提高系統(tǒng)的可靠性及容錯(cuò)能力,當(dāng)某一臺(tái)計(jì)算機(jī)出現(xiàn)故障時(shí),由于數(shù)據(jù)庫(kù)是同一份共享的映像,所以不需要系統(tǒng)的重新恢復(fù),從而繼續(xù)整個(gè)系統(tǒng)的運(yùn)行,達(dá)到不間斷運(yùn)行的效果。
Oracle9i最新的并行服務(wù)器技術(shù) Real Application Clusters設(shè)計(jì)了快捷高效的共享集群高速緩存,從而提供了透明的應(yīng)用程序可擴(kuò)展性。Real Application Clusters是五年多研發(fā)工作的結(jié)晶,其中包含了13項(xiàng)獨(dú)家專利和18項(xiàng)已申報(bào)的專利請(qǐng)求。Real Application Clusters獨(dú)特之處在于:
a)“開箱即用”,提供接近線性的可伸縮性
b)與應(yīng)用程序的良好兼容性,無需重新設(shè)計(jì)
c)快速增長(zhǎng)的集群,可快速增添節(jié)點(diǎn)和磁盤
Oracle Real Application Cluster能支持的節(jié)點(diǎn)數(shù)目受操作系統(tǒng)的約束,一般最大可以達(dá)256個(gè)。
為了能充分發(fā)揮對(duì)稱多處理機(jī)SMP中多CPU硬件平臺(tái)的高性能,Sybase采用了虛擬服務(wù)器體系結(jié)構(gòu)(VSA),用單一的進(jìn)程來模擬多進(jìn)程處理,當(dāng)多個(gè)CPU同分片的進(jìn)程處于協(xié)調(diào)一致時(shí),可以利用多個(gè)CPU的高性能;但同時(shí),假如不處于協(xié)調(diào)一致時(shí),也會(huì)成為服務(wù)器進(jìn)程瓶頸。
Sybase不能支持Cluster系統(tǒng)的可伸縮性。Sybase Adaptive Server Enterprise只能提供在Cluster系統(tǒng)上的切換功能,提高系統(tǒng)的可用性。
Sybase最近公布它的Companion Server Option可以支持Cluster系統(tǒng)的并行處理。但事實(shí)是怎樣的呢?Companion Server Option只能支持2個(gè)節(jié)點(diǎn)的Cluster系統(tǒng), 包含一個(gè)Primary Database節(jié)點(diǎn)和一個(gè)Proxy Database節(jié)點(diǎn)。雖然用戶可以通過Proxy Database節(jié)點(diǎn)訪問數(shù)據(jù)庫(kù),但Proxy Database上只有數(shù)據(jù)字典是直接訪問的,其對(duì)數(shù)據(jù)的訪問是通過對(duì)Primary Database的遠(yuǎn)過程調(diào)用實(shí)現(xiàn),所以最終仍然都需經(jīng)過主數(shù)據(jù)庫(kù)(Primary Database)節(jié)點(diǎn)。Primary Database的負(fù)載并沒有減輕。所以這種配置不能真正提高系統(tǒng)的可伸縮性。
7、數(shù)據(jù)分區(qū)技術(shù)
Oracle從Oracle8開始引入 了數(shù)據(jù)分區(qū)(Partitioning),這項(xiàng)技術(shù)對(duì)大規(guī)模數(shù)據(jù)庫(kù)(VLDB), 并行處理和數(shù)據(jù)倉(cāng)庫(kù)都有重大的意義。
Oracle數(shù)據(jù)分區(qū)選件將大表和索引分成可以治理的小塊,從而避免了對(duì)每個(gè)大表只能作為一個(gè)單獨(dú)的對(duì)象進(jìn)行治理。分區(qū)(partitioning)是一種“分而置之”的技術(shù),它為大量數(shù)據(jù)提供了可伸縮的性能。分區(qū)通過將操作分配給更小的存儲(chǔ)單元,減少了需要進(jìn)行治理操作的時(shí)間,并通過增強(qiáng)的并行處理提高了性能,通過包含故障的影響還增加了可用性。它支持靈活的按不同要害字進(jìn)行分區(qū)的能力。
分區(qū)使治理員更輕易治理大數(shù)據(jù)量的表。治理員可以指定每個(gè)分區(qū)的存儲(chǔ)屬性,分區(qū)在宿主文件系統(tǒng)中的放置情況,這樣便增加了對(duì)超大型數(shù)據(jù)庫(kù)的控制粒度。分區(qū)可以被單獨(dú)地卸出或裝入,備份,恢復(fù),導(dǎo)出和導(dǎo)入,以及加載;因此減少了需要進(jìn)行治理操作的時(shí)間?梢詫(duì)分區(qū)實(shí)施靈活的增刪改等治理工作。對(duì)表分區(qū)還可以創(chuàng)建單獨(dú)的索引分區(qū),從而限制了需要進(jìn)行索引維護(hù)操作的時(shí)間。此外,還提供了種類繁多的局部和全局的索引技術(shù)。
分區(qū)技術(shù)還提高了數(shù)據(jù)的可用性。當(dāng)部分?jǐn)?shù)據(jù)由于故障或其它原因不可用時(shí),其它分區(qū)內(nèi)的數(shù)據(jù)可用不收影響繼續(xù)使用。
分區(qū)對(duì)應(yīng)用是透明的,可以通過標(biāo)準(zhǔn)的SQL語句對(duì)分區(qū)表進(jìn)行操作。Oracle 的優(yōu)化器在訪問數(shù)據(jù)時(shí)會(huì)分析數(shù)據(jù)的分區(qū)情況,在進(jìn)行查詢時(shí),那些不包含任何查詢數(shù)據(jù)的分區(qū)將被忽略,從而大大提高系統(tǒng)的性能。有了分區(qū)以后可以將對(duì)數(shù)據(jù)表的操作,例如DML操作,在多個(gè)分區(qū)上實(shí)現(xiàn)并行,且分區(qū)間的并行可做到均衡負(fù)載,從而提高系統(tǒng)的性能。
Oracle支持的分區(qū)包括:
a) Range Partitioning—對(duì)指定要害字按取值范圍分區(qū),Oracle自動(dòng)將記錄插入相應(yīng)的分區(qū)。
b) Hash Partitioning—基于Hash算法,使用者只需要指定用作Hash 分區(qū)的要害字和分區(qū)數(shù)量,Oracle 把每條記錄均勻插入各個(gè)分區(qū)。
c) Composite Partitioning—是Range Partitioning和Hash Partitioning的組合,使用者可以指定先按某個(gè)要害字做Range Partitioning,然后再按另外一些要害字做Hash Partitioning。從而提供更好的并行處理能力。
d) List Partitioning—當(dāng)指定要害字的取值可以列表時(shí),可以使用這種分區(qū)。Oracle自動(dòng)將記錄插入相應(yīng)的分區(qū)。
Sybase也宣稱有數(shù)據(jù)分區(qū)的功能。但Sybase的分區(qū)與Oracle, IBM, Informix等數(shù)據(jù)庫(kù)的分區(qū)定義有本質(zhì)的不同。實(shí)際上,Sybase的分區(qū)稱為頁(yè)鏈更為合適。在Sybase中,表的存儲(chǔ)是以頁(yè)為單位的,頁(yè)間以指針連接構(gòu)成頁(yè)鏈。而將一個(gè)表分區(qū)實(shí)際就是為一個(gè)表建多個(gè)頁(yè)鏈。在Oracle中早就實(shí)現(xiàn)了這種技術(shù)(一個(gè)表建多個(gè)Free List)。這種“分區(qū)”雖然可以提高查詢的并行度,但它沒有常規(guī)意義上的分區(qū)所帶來的易于治理和隔離故障的好處。在并行方面,它也不能象Hash分區(qū)那樣使數(shù)據(jù)均勻地分布,所以I/O在各個(gè)數(shù)據(jù)庫(kù)設(shè)備不能均勻地分布,并行操作仍然存在瓶頸。Sybase的所謂“分區(qū)”并不是數(shù)據(jù)庫(kù)行業(yè)里公認(rèn)的分區(qū),既不能按鍵值范圍分區(qū),也不能通過Hash函數(shù)分區(qū),只是為表的插入增加多個(gè)插入點(diǎn),彌補(bǔ)其頁(yè)級(jí)鎖在OLTP環(huán)境下難以支持大量并發(fā)操作的缺陷。
|
|