- 論壇徽章:
- 0
|
聯(lián)機(jī)事務(wù)處理(OLTP)性能對比
Oracle
在關(guān)鍵性的事務(wù)處理性能方面,Oracle 的TPC-C指數(shù)多少改變了其運行緩慢的一貫形象。隱藏在這些“優(yōu)良性能”背后的卻是龐大的資源投入。例如:Oracle使用臨時tablespace執(zhí)行建立索引的工作,如果你需要對一個數(shù)據(jù)量較大的表生成索引,那么你必須設(shè)置巨大的tablespace同時關(guān)閉該tablespace的登錄操作,否則索引將不能生成。同時Oracle必須利用rollback segments,不管索引生成與否,都將索引行記錄在rollback segments或redo log,這將耗費大量的系統(tǒng)資源,但事實上這樣做并無此必要。Sybase 在一張大表上花費40分鐘建立唯一索引,而對于Oracle來說,花費的時間是16小時。
Oracle的鎖機(jī)制只限于行鎖和表鎖,并且在加鎖時將數(shù)據(jù)和索引同時鎖住,但在實際應(yīng)用中并不是每次操作都需要對數(shù)據(jù)和索引同時訪問,因此這將影響系統(tǒng)的并行效率。
Oracle查詢計劃的優(yōu)化是基于系統(tǒng)內(nèi)置的靜態(tài)規(guī)則,無法根據(jù)用戶的需求(用戶數(shù)激增,數(shù)據(jù)量爆炸等變化)動態(tài)地調(diào)整執(zhí)行計劃,針對SQL也沒有相應(yīng)的調(diào)優(yōu)工具,因此當(dāng)執(zhí)行效率由于運行環(huán)境的變化而降低時,只有修改程序才能進(jìn)行優(yōu)化。
數(shù)據(jù)爆炸是影響性能的一個重要因素,數(shù)據(jù)爆炸不僅增加了磁盤空間占用而且還導(dǎo)致了大量DBA資源的開銷。在Oracle 中,Oracle采用了一些新技術(shù)加快查詢速度,比如自動摘要表,這一新特征連同Oracle 10g的其他所有特征,比如位圖索引,分區(qū),索引表等都將增加數(shù)據(jù)庫的數(shù)據(jù)量,而在性能方面僅對預(yù)先計劃的查詢有效。這一點可以通過Oracle在TPC—D上的性能測試指標(biāo)證明。測試表明,Oracle為了獲得好的查詢性能,數(shù)據(jù)庫里的數(shù)據(jù)量將增加到原始數(shù)據(jù)量的553%。使用Oracle 數(shù)據(jù)庫,數(shù)據(jù)庫管理員僅能夠優(yōu)化CPU及并行級別,這種資源管理方式對于混合負(fù)載環(huán)境是沒有效率的。值得一提的是,Oracle引進(jìn)了許多新的可用性特征用以追趕Sybase ASE。這些特征包括了索引重構(gòu),保證用于快速恢復(fù)的檢測點時間,自動發(fā)送備份的操作到備用數(shù)據(jù)庫,閱讀日志及在線修復(fù)數(shù)據(jù)功能。
Sybase
對于Sybase用戶來說:使用核心備份目錄,索引日志,單進(jìn)程和單數(shù)據(jù)庫服務(wù)器等技術(shù)無異于走進(jìn)侏羅紀(jì)公園。ASE為聯(lián)機(jī)事務(wù)處理提供了可預(yù)計的高性能,通過專利的邏輯內(nèi)存管理器(Logical Memory Manager:LMM)讓用戶分配數(shù)據(jù)庫對象給設(shè)定的沒有數(shù)量限制的命名緩存。高優(yōu)先級的數(shù)據(jù)保留在緩存中,提高響應(yīng)時間。從而保證關(guān)鍵的業(yè)務(wù)有充足硬件資源。
同時邏輯處理管理器(Logical Process Manager:LPM)允許用戶分配CPU資源給個別應(yīng)用,以便于低優(yōu)先級的操作不影響高優(yōu)先級的操作,確保了更好的可預(yù)計的性能。LMM和LPM還允許用戶靈活的支持密集資源操作,例如:生成報表的同時,而不會影響關(guān)鍵任務(wù)應(yīng)用的性能。
資源控制器用于阻止那些為了得到快速的響應(yīng)速率而壟斷資源的失控查詢。通過管理查詢、批處理或事務(wù)的資源消耗,允許用戶指定基于I/O開銷、使用時間或返回行數(shù)的限制,還可以建立當(dāng)超過限制時可執(zhí)行的操作。
Sybase ASE在很多年前就為混合負(fù)載環(huán)境提供了優(yōu)化參數(shù),包括緩存索引頁和數(shù)據(jù),減少I/O的花費,為用戶提供多種優(yōu)先權(quán)設(shè)置和在CPU水平上控制資源或限定一個查詢和批處理的資源利用。ASE 現(xiàn)在能夠適應(yīng)電子商務(wù)領(lǐng)域非常典型的不斷變化的工作負(fù)載。當(dāng)工作負(fù)載發(fā)生變化時,CPU和內(nèi)存之類的資源以及為服務(wù)器引擎所理解的用戶優(yōu)先權(quán)的分配能夠動態(tài)地進(jìn)行調(diào)整。另外, Sybase還允許在存儲進(jìn)程級別、索引及應(yīng)用級別上對CPU及存儲地址分配進(jìn)行優(yōu)化。
在數(shù)據(jù)庫死鎖方面,許多應(yīng)用之所以被鎖住內(nèi)容,主要是由于索引頁加鎖而不是數(shù)據(jù)頁加鎖導(dǎo)致對無關(guān)數(shù)據(jù)的加鎖。Sybase提供了只在數(shù)據(jù)頁加鎖而無需在索引頁加鎖的機(jī)制。這樣能降低許多應(yīng)用中內(nèi)容被鎖住的情況,從而大大提高并發(fā)性,同時將死鎖的可能性降低65%。
ASE 15.7推出了用于查詢執(zhí)行的多種內(nèi)部優(yōu)化功能.可減少查詢執(zhí)行時的額外開銷。ASE 15.7還提供了可更好地利用并行硬件的升級版內(nèi)核。該內(nèi)核升級增強(qiáng)了ASE在擁有非常多的處理器、處理器內(nèi)核以及硬件線程的系統(tǒng)中的可擴(kuò)展性。
同時Sybase數(shù)據(jù)庫中包含獨特的調(diào)優(yōu)工具,可以根據(jù)抽象計劃針對SQL進(jìn)行優(yōu)化;隨著數(shù)據(jù)庫運行環(huán)境的變化(用戶數(shù)、數(shù)據(jù)量和并發(fā)度等)動態(tài)調(diào)整執(zhí)行計劃,完全根據(jù)應(yīng)用的需求而不是固定的方式(規(guī)則)對程序進(jìn)行優(yōu)化;在不改變?nèi)魏纬绦蚧驍?shù)據(jù)庫配置的前提下對性能進(jìn)行調(diào)優(yōu)。
下圖顯示了Sybase和Oracle數(shù)據(jù)庫在聯(lián)機(jī)事務(wù)處理方面的差異:
Sybase ASE Vs Oracle
ASE Oracle 數(shù)值對比
性能對比
硬件平臺: Sun Starfire Enterprise 10000
CPUs: 64
TPC-C 156,873.03 115,395.73 41,477.3
$/TPC-C $48.81 $105.63 -$56.82
系統(tǒng)總開銷 $7,657,324 $ 12,189,298 -$4,531,974
性能對比
硬件平臺: HP 9000/V2500
CPUs: 32
TPC-C 102,023 92,832 9,191
$/TPC-C $63.21 $87.71 -$24.51
系統(tǒng)總開銷 $6,448,894 $8,142,782 -$1,693,888
內(nèi)存資源占用對比
每用戶占用內(nèi)存值 72KB 250KB -178KB
250 用戶 18MB 62MB -44MB
500 用戶 36MB 132MB -96MB
1,000 用戶 72MB 264MB -192MB
5,000 用戶 360MB 1.25GB -890MB
硬盤資源占用對比
記錄數(shù): 2billion
記錄長度: 42 bytes
鏡像 : Yes
硬盤占用量 511.3GB 1,052GB -540GB
每1M數(shù)據(jù)量硬件開銷 $511,000 $1,052,000 -$541,000
基于Linux的Sybase ASE產(chǎn)品目前仍然保持著在2/4核上的交易性能記錄:
TPC-C Benchmark completed June 2006. IBM TPC-C results of 81,439 tpmC, 2.99 $/tpmC, configuration available as of 12/22/06, IBM p5-520 Model 9131-520 running Sybase Adaptive Server on SUSe Linux 9. HP ProLiant DL385 G1 2.8 GHz/2Presult of 76,214 tpmC, 3.91 $/tpmC
|
|