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