潘紅巖
摘要:隨著科學(xué)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的快速發(fā)展,加大了信息數(shù)據(jù)的管理工作和構(gòu)成的難度和復(fù)雜度,為信息的保密性帶來嚴(yán)峻挑戰(zhàn),目前應(yīng)用最為廣泛的信息數(shù)據(jù)管理系統(tǒng)就是 Oracle 數(shù)據(jù)庫,其穩(wěn)定性和信息安全性優(yōu)勢顯著。在數(shù)據(jù)庫系統(tǒng)運(yùn)行時(shí)間不斷延長的趨勢下,其性能出現(xiàn)了各種問題,影響其運(yùn)行,因此需要對其性能進(jìn)行調(diào)整和優(yōu)化。本論文從不同方面闡述Oracle的性能調(diào)整與優(yōu)化分析,希望為研究Oracle數(shù)據(jù)庫的專家和學(xué)者提供理論參考依據(jù)。
關(guān)鍵詞:Oracle;性能調(diào)整;優(yōu)化分析
Oracle 數(shù)據(jù)庫系統(tǒng)是一個(gè)復(fù)雜的大型關(guān)系型數(shù)據(jù)庫系統(tǒng)。 其性能優(yōu)化有多種方式,性能因素的影響也是多方面的。 機(jī)器性能、操作系統(tǒng)和網(wǎng)絡(luò)性能這些外界因素也能直接影響到 Oracle 性能的發(fā)揮。本文主要研究的方向是除了外界因素之外,Oracle 本身的優(yōu)化配置與性能分析。
1Oracle數(shù)據(jù)庫簡介
1.1 Oracle 數(shù)據(jù)庫概述
Oracle 數(shù)據(jù)庫功能相當(dāng)強(qiáng)大,起源較早,最開始出現(xiàn)的形式是關(guān)系型數(shù)據(jù)庫技術(shù),可以實(shí)現(xiàn)對數(shù)據(jù)之間的關(guān)系的了解,并通過信息庫的構(gòu)造將這些關(guān)系真實(shí)的反映出來。1984 年 Oracle 數(shù)據(jù)庫實(shí)現(xiàn)了桌面計(jì)算機(jī)與關(guān)系數(shù)據(jù)庫的有效結(jié)合,隨著 Oracle 數(shù)據(jù)庫的不斷發(fā)展,其各項(xiàng)功能也不斷健全,并提供給企業(yè)類的、網(wǎng)絡(luò)工作組、高可靠性的、產(chǎn)業(yè)化的應(yīng)用可靠的技術(shù)支撐,實(shí)現(xiàn)對關(guān)系數(shù)據(jù)的高效處理。
1.2 Oracle 數(shù)據(jù)庫主要特點(diǎn)
Oracle 數(shù)據(jù)庫的主要特點(diǎn)有支持多用戶和大數(shù)據(jù)的高性能事務(wù)處理、硬件環(huán)境獨(dú)立、對完整性和安全性的良好控制,同時(shí) Oracle 數(shù)據(jù)庫還遵守網(wǎng)絡(luò)通信協(xié)議、數(shù)據(jù)存取語言等相關(guān)的工業(yè)標(biāo)準(zhǔn)。另外Oracle數(shù)據(jù)庫支持分布式數(shù)據(jù)庫和分布處理,擁有可連接性、可兼容性、可移植性的特征。實(shí)現(xiàn)不同型號的計(jì)算機(jī)和不同操作系統(tǒng)下可以運(yùn)行Oracle 數(shù)據(jù)庫的需求,其自身獨(dú)有的特點(diǎn)滿足了不同用戶的不同要求,符合時(shí)代發(fā)展潮流。
2對 Oracle 數(shù)據(jù)庫系統(tǒng)性能產(chǎn)生影響的相關(guān)因素
2.1 Oracle 數(shù)據(jù)庫的相應(yīng)運(yùn)作服務(wù)器性能優(yōu)劣
對于一個(gè)數(shù)據(jù)庫系統(tǒng)來說,服務(wù)器便是整個(gè)系統(tǒng)正常運(yùn)作的核心,服務(wù)器的性能優(yōu)劣直接對整個(gè)數(shù)據(jù)庫系統(tǒng)相關(guān)性能造成影響。服務(wù)器上所運(yùn)作的操作系統(tǒng)和服務(wù)器硬件實(shí)際配置好壞取決了 Oracle 數(shù)據(jù)庫系統(tǒng)中服務(wù)器的性能。
2.2 相關(guān)的網(wǎng)絡(luò) I/O 性能
有效實(shí)現(xiàn)整個(gè)數(shù)據(jù)庫系統(tǒng)的相關(guān)應(yīng)用程序和服務(wù)器交互運(yùn)作,需利用網(wǎng)絡(luò)作為基礎(chǔ)方能進(jìn)行。因此,網(wǎng)絡(luò)相應(yīng)的性能好壞,對 Oracle 數(shù)據(jù)庫系統(tǒng)性能有著相當(dāng)重要的作用。
2.3 Oracle 數(shù)據(jù)庫的相應(yīng)配置
Oracle 數(shù)據(jù)庫的配置直接影響數(shù)據(jù)庫系統(tǒng)性能,其不僅決定了系統(tǒng)性能的優(yōu)劣,同時(shí)是有效使系統(tǒng)優(yōu)化的關(guān)鍵。Oracle 數(shù)據(jù)庫的配置和相關(guān)配置調(diào)整貫穿著整個(gè)系統(tǒng)中的數(shù)據(jù)庫設(shè)計(jì)、數(shù)據(jù)庫創(chuàng)建以及數(shù)據(jù)庫實(shí)際運(yùn)行等。
2.4 Oracle 數(shù)據(jù)庫的實(shí)際應(yīng)用程序性能
Oracle 數(shù)據(jù)庫的實(shí)際應(yīng)用程序運(yùn)行方式會對數(shù)據(jù)庫的性能產(chǎn)生比較大的影響,尤其體現(xiàn)在數(shù)據(jù)庫運(yùn)行過程中的 SQL 語句應(yīng)用、數(shù)據(jù)庫端相應(yīng)的程序設(shè)計(jì)以及整個(gè)數(shù)據(jù)庫系統(tǒng)的連接方式等方面,這些運(yùn)作方式均對數(shù)據(jù)庫的實(shí)際執(zhí)行效率造成影響。
3 Oracle數(shù)據(jù)庫性能調(diào)整
3.1 調(diào)整 Oracle 數(shù)據(jù)庫內(nèi)存參數(shù)
Oracle 數(shù)據(jù)庫內(nèi)存參數(shù)的調(diào)整主要是針對其系統(tǒng)全局區(qū)進(jìn)行的。其主要組成部分有日志緩沖區(qū)、數(shù)據(jù)緩沖區(qū)、共享池。系統(tǒng)全局區(qū)伴隨著環(huán)境的變化做出相應(yīng)改變,在對其進(jìn)行調(diào)整的過程中要考慮數(shù)據(jù)庫的運(yùn)行模式、操作系統(tǒng)的內(nèi)存容量、系統(tǒng)的類型是裸設(shè)備還是文件系統(tǒng)、物理內(nèi)存的大小。系統(tǒng)全局區(qū)大約占數(shù)據(jù)庫物理內(nèi)存的 40%-60%,系統(tǒng)全局區(qū)大小直接受初始化參數(shù)的決定性影響,主要參數(shù)有 WORKAREASIZEPOLICYLOGBBUFFER、SHARED_POOL_SIZE、DB_CACHE_SIZE、DB_BLOCK_SIZE。WORKAREASIZEPOLICY 參數(shù)的有 MANUAL和 AUTO 兩種可選值,可根據(jù)實(shí)際情況進(jìn)行選擇;LOGBBUFFER 能夠指定 Oracle 數(shù)據(jù)庫內(nèi)存空間的大小,即寫入到重做日志文件中的通過緩沖區(qū)寫入的重做日志;SHARED_POOL_SIZE 對數(shù)據(jù)庫共享內(nèi)存池其直接決定作用;
3.2調(diào)整 Oracle 數(shù)據(jù)庫操作系統(tǒng)資源
運(yùn)行服務(wù)器的操作系統(tǒng)對 Oracle 數(shù)據(jù)庫服務(wù)器產(chǎn)生直接影響,操作系統(tǒng)的性能若是出現(xiàn)故障,則無法進(jìn)行 Oracle 數(shù)據(jù)庫性能的有效調(diào)整。首先,需要對操作系統(tǒng)的換頁空間進(jìn)行適當(dāng)?shù)恼{(diào)整,優(yōu)化配置其內(nèi)存分配,通過數(shù)據(jù)庫的實(shí)際運(yùn)行情況的調(diào)查,相關(guān)的管理人員可以調(diào)整內(nèi)在資源,同時(shí)對操作系統(tǒng)的換頁空間也要做出相應(yīng)的調(diào)整。在換頁空間的大小檢查過程中,當(dāng)換頁空間的物理內(nèi)存大于 2G 時(shí),就需要對其進(jìn)行適當(dāng)?shù)恼{(diào)整,如果物理內(nèi)存小于 2G,則需要將換頁空間大小設(shè)定為物理內(nèi)存的 1.5 倍。
4 Oracle 性能優(yōu)化
4.1 內(nèi)存優(yōu)化
在介紹共享池優(yōu)化之前,我們先要了解 SGA 這個(gè)概念。 SGA,即系統(tǒng)全局區(qū) System Global Area,它是Oracle Instance 的基本組成部分,在實(shí)例啟動時(shí)分配。 共享池 Shared Pool 就是一個(gè)系統(tǒng)全局區(qū),它的目的是能夠快速反問數(shù)據(jù)庫數(shù)據(jù),在實(shí)例啟動時(shí)確定其大小。 如果系統(tǒng)頻繁地釋放與分配,則會嚴(yán)重影響其性能指數(shù)。為了避免這點(diǎn),應(yīng)該保證共享池能夠完全的存放到實(shí)際內(nèi)存中,不需要在虛擬內(nèi)存中轉(zhuǎn)來轉(zhuǎn)去,這樣會大大提高 Oracle 訪問數(shù)據(jù)的性能。共享池的設(shè)置可以通過定義 SGA_TARGET 參數(shù)的值,也就是目標(biāo) SGA 大小,Oracle 就會根據(jù)此目標(biāo)值自動設(shè)置共享池的大小。
4.2 SQL 語句優(yōu)化
SQL 語句的優(yōu)化還有不同 select 語句的性能不同;WHERE 后面的條件順序影響;查詢表順序的影響等。同樣含義的 SQL 語句效率是大不相同的。 在編寫 SQL 語句的時(shí)候應(yīng)該盡量少的使用效率不高的語句,最大限度地使用效率高、可以應(yīng)用索引的語句。 這樣會在無形之中提高了 Oracle 數(shù)據(jù)庫性能。
參考文獻(xiàn)
[1]Oracle數(shù)據(jù)庫系統(tǒng)隨堂案例設(shè)計(jì)[J]. 張巍娜,白彥輝.??電腦知識與技術(shù).?2015(14)
[2]ORACLE數(shù)據(jù)庫系統(tǒng)的優(yōu)化[J]. 趙添喜.??科技風(fēng).?2013(09)
[3]基于Oracle數(shù)據(jù)庫系統(tǒng)性能調(diào)整與優(yōu)化研究[J]. 郭曉丹.??數(shù)字技術(shù)與應(yīng)用.?2015(05)
[4]淺談數(shù)據(jù)庫系統(tǒng)內(nèi)存優(yōu)化分配策略[J]. 張東偉.??中國管理信息化.?2017(13)[5]大型ORACLE數(shù)據(jù)庫系統(tǒng)的優(yōu)化設(shè)計(jì)研究[J]. 洪健.??電子技術(shù)與軟件工程.?2014(11)
[6]基于Oracle數(shù)據(jù)庫系統(tǒng)的優(yōu)化與性能調(diào)整研究[J]. 庫爾班江·托乎提,于會松,滕良娟.??信息系統(tǒng)工程.?2014(08)
[7]Oracle數(shù)據(jù)庫系統(tǒng)的安全策略[J]. 朱春.??電腦知識與技術(shù).?2005(14)
(作者單位:中國人民銀行伊春市中心支行)