五分鐘了解什么是Oracle數(shù)據(jù)庫(kù)
隨著網(wǎng)絡(luò)應(yīng)用和電子商務(wù)的不斷發(fā)展,各個(gè)站點(diǎn)的訪問(wèn)量越來(lái)越大,數(shù)據(jù)庫(kù)規(guī)模也隨之不斷的擴(kuò)大,數(shù)據(jù)庫(kù)系統(tǒng)的性能問(wèn)題就越來(lái)越突出,因此,如何對(duì)數(shù)據(jù)庫(kù)進(jìn)行調(diào)優(yōu)至關(guān)重要:如何使用有限的計(jì)算機(jī)系統(tǒng)資源為更多的用戶服務(wù)?如何保證用戶的響應(yīng)速度和服務(wù)質(zhì)量?這些問(wèn)題都屬于服務(wù)器性能優(yōu)化的范疇。
作為***大數(shù)據(jù)庫(kù)廠商,Oracle數(shù)據(jù)庫(kù)在國(guó)內(nèi)外獲得了諸多成功應(yīng)用,據(jù)統(tǒng)計(jì),全球93%的上市.COM公司、65家"財(cái)富全球100強(qiáng)"企業(yè)不約而同地采用Oracle數(shù)據(jù)庫(kù)來(lái)開展電子商務(wù)。我國(guó)很多企業(yè)、政府單位及電子商務(wù)網(wǎng)站也采用了Oracle作為數(shù)據(jù)庫(kù)服務(wù)器。Oracle數(shù)據(jù)庫(kù)服務(wù)器是高度可優(yōu)化的軟件產(chǎn)品,經(jīng)常性的調(diào)整可以優(yōu)化應(yīng)用系統(tǒng)的性能,防止出現(xiàn)系統(tǒng)瓶頸。
數(shù)據(jù)庫(kù)性能優(yōu)化的基本原則就是:通過(guò)盡可能少的磁盤訪問(wèn)獲得所需要的數(shù)據(jù)。要評(píng)價(jià)數(shù)據(jù)庫(kù)的性能,需要在數(shù)據(jù)庫(kù)調(diào)節(jié)前后比較其評(píng)價(jià)指標(biāo):響應(yīng)時(shí)間和吞吐量之間的權(quán)衡、數(shù)據(jù)庫(kù)的可用性、數(shù)據(jù)庫(kù)的命中率以及內(nèi)存的使用效率,以此來(lái)衡量調(diào)節(jié)措施的效果和指導(dǎo)調(diào)整的方向。
對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行性能調(diào)整時(shí),應(yīng)當(dāng)按照一定的順序進(jìn)行,因?yàn)橄到y(tǒng)在前面步驟中進(jìn)行的調(diào)整可以避免后面的一些不必要調(diào)整或者代價(jià)很大的調(diào)整。一般來(lái)說(shuō)可以從兩個(gè)階段入手:
1、設(shè)計(jì)階段:對(duì)其邏輯結(jié)構(gòu)和物理結(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計(jì),使之在滿足需求條件的情況下,系統(tǒng)性能達(dá)到***,系統(tǒng)開銷達(dá)到最小;
2、數(shù)據(jù)庫(kù)運(yùn)行階段:采取操作系統(tǒng)級(jí)、數(shù)據(jù)庫(kù)級(jí)的一些優(yōu)化措施來(lái)使系統(tǒng)性能***;在系統(tǒng)設(shè)計(jì)開發(fā)階段調(diào)整數(shù)據(jù)庫(kù)
為了充分利用Oracle數(shù)據(jù)庫(kù)的功能特性,在設(shè)計(jì)信息系統(tǒng)時(shí),數(shù)據(jù)庫(kù)設(shè)計(jì)人員需要根據(jù)業(yè)務(wù)情況(如訪問(wèn)量或客戶端數(shù)量)和現(xiàn)有資源狀況(如數(shù)據(jù)庫(kù)服務(wù)器的配置)考慮系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)的設(shè)計(jì):
2.1調(diào)整應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)。
即應(yīng)用程序采用的是傳統(tǒng)的C/S兩層體系結(jié)構(gòu),還是B/W/D三層體系結(jié)構(gòu)。不同的應(yīng)用程序體系結(jié)構(gòu)要求的數(shù)據(jù)庫(kù)資源是不同的。
2.2恰當(dāng)使用分區(qū)、索引及存檔功能。
如果某種業(yè)務(wù)的數(shù)據(jù)量增長(zhǎng)非???,可以考慮存放該業(yè)務(wù)的數(shù)據(jù)庫(kù)表是否使用Oracle數(shù)據(jù)庫(kù)的分區(qū)功能;對(duì)于經(jīng)常訪問(wèn)的數(shù)據(jù)庫(kù)表是否需要建立索引;對(duì)于經(jīng)常訪問(wèn)但是當(dāng)業(yè)務(wù)流程完成后不再變動(dòng)的數(shù)據(jù)可采用放入歷史檔案的方法來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)中訪問(wèn)盡可能少的數(shù)據(jù)量。
2.3恰當(dāng)編寫訪問(wèn)數(shù)據(jù)的SQL語(yǔ)句。
良好的SQL語(yǔ)句可以被數(shù)據(jù)庫(kù)重復(fù)使用而減少分析時(shí)間;恰當(dāng)?shù)氖褂盟饕墒乖L問(wèn)的數(shù)據(jù)塊大大減少?gòu)亩鴾p少響應(yīng)時(shí)間。應(yīng)用程序的執(zhí)行最終將歸結(jié)為數(shù)據(jù)庫(kù)中的SQL語(yǔ)句執(zhí)行,因此SQL語(yǔ)句的執(zhí)行效率決定了Oracle數(shù)據(jù)庫(kù)的性能。Oracle公司推薦使用Oracle語(yǔ)句優(yōu)化器(Oracle Optimizer)和行鎖管理器(row-level manager)來(lái)調(diào)整優(yōu)化SQL語(yǔ)句。
2.4調(diào)整硬盤I/O
這一步是在信息系統(tǒng)開發(fā)之前完成的。數(shù)據(jù)庫(kù)管理員可以將組成同一個(gè)表空間的數(shù)據(jù)文件放在不同的硬盤上,做到硬盤之間I/O負(fù)載均衡。在磁盤比較富裕的情況下還應(yīng)該遵循以下原則:
◆將表和索引分開;
◆創(chuàng)造用戶表空間,與系統(tǒng)表空間(system)分開磁盤;
◆創(chuàng)建表和索引時(shí)指定不同的表空間;
◆創(chuàng)建回滾段專用的表空間,防止空間競(jìng)爭(zhēng)影響事務(wù)的完成;
◆創(chuàng)建臨時(shí)表空間用于排序操作,盡可能的防止數(shù)據(jù)庫(kù)碎片存在于多個(gè)表空間中。
2.5確定數(shù)據(jù)塊大小和存儲(chǔ)參數(shù)。
由于數(shù)據(jù)庫(kù)的塊大小在數(shù)據(jù)庫(kù)創(chuàng)建以后就不能在修改(除非重建數(shù)據(jù)庫(kù)),因此為了減少數(shù)據(jù)鏈接和行遷移,又提高磁盤空間的利用率,在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)要確定合適的數(shù)據(jù)塊大小和存儲(chǔ)參數(shù)。通常我們是根據(jù)樣例數(shù)據(jù)確定數(shù)據(jù)塊大小,而根據(jù)業(yè)務(wù)現(xiàn)狀和未來(lái)發(fā)展趨勢(shì)確定存儲(chǔ)參數(shù)。
【編輯推薦】