- 相關(guān)推薦
大型ORACLE數(shù)據(jù)庫優(yōu)化設(shè)計方案
摘 要 本文主要從大型數(shù)據(jù)庫ORACLE環(huán)境四個不同級別的調(diào)整分析入手,分析ORACLE的系統(tǒng)結(jié)構(gòu)和工作機(jī)理,從九個不同方面較全面地總結(jié)了ORACLE數(shù)據(jù)庫的優(yōu)化調(diào)整方案。
關(guān)鍵詞 ORACLE數(shù)據(jù)庫 環(huán)境調(diào)整 優(yōu)化設(shè)計 方案
對于ORACLE數(shù)據(jù)庫的數(shù)據(jù)存取,主要有四個不同的調(diào)整級別,第一級調(diào)整是操作系統(tǒng)級包括硬件平臺,第二級調(diào)整是ORACLE RDBMS級的調(diào)整,第三級是數(shù)據(jù)庫設(shè)計級的調(diào)整,最后一個調(diào)整級是SQL級。通常依此四級調(diào)整級別對數(shù)據(jù)庫進(jìn)行調(diào)整、優(yōu)化,數(shù)據(jù)庫的整體性能會得到很大的改善。下面從九個不同方面介紹ORACLE數(shù)據(jù)庫優(yōu)化設(shè)計方案。
一.數(shù)據(jù)庫優(yōu)化自由結(jié)構(gòu)OFA(Optimal flexible Architecture)
數(shù)據(jù)庫的邏輯配置對數(shù)據(jù)庫性能有很大的影響,為此,ORACLE公司對表空間設(shè)計提出了一種優(yōu)化結(jié)構(gòu)OFA。使用這種結(jié)構(gòu)進(jìn)行設(shè)計會大大簡化物理設(shè)計中的數(shù)據(jù)管理。優(yōu)化自由結(jié)構(gòu)OFA,簡單地講就是在數(shù)據(jù)庫中可以高效自由地分布邏輯數(shù)據(jù)對象,因此首先要對數(shù)據(jù)庫中的邏輯對象根據(jù)他們的使用方式和物理結(jié)構(gòu)對數(shù)據(jù)庫的影響來進(jìn)行分類,這種分類包括將系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)分開、一般數(shù)據(jù)和索引數(shù)據(jù)分開、低活動表和高活動表分開等等。
數(shù)據(jù)庫邏輯設(shè)計的結(jié)果應(yīng)當(dāng)符合下面的準(zhǔn)則:(1)把以同樣方式使用的段類型存儲在一起;(2)按照標(biāo)準(zhǔn)使用來設(shè)計系統(tǒng);(3)存在用于例外的分離區(qū)域;(4)最小化表空間沖突;(5)將數(shù)據(jù)字典分離。
二、充分利用系統(tǒng)全局區(qū)域SGA(SYSTEM GLOBAL AREA)
SGA是oracle數(shù)據(jù)庫的心臟。用戶的進(jìn)程對這個內(nèi)存區(qū)發(fā)送事務(wù),并且以這里作為高速緩存讀取命中的數(shù)據(jù),以實(shí)現(xiàn)加速的目的。正確的SGA大小對數(shù)據(jù)庫的性能至關(guān)重要。SGA包括以下幾個部分:
1、數(shù)據(jù)塊緩沖區(qū)(data block buffer cache)是SGA中的一塊高速緩存,占整個數(shù)據(jù)庫大小的1%-2%,用來存儲從數(shù)據(jù)庫重讀取的數(shù)據(jù)塊(表、索引、簇等),因此采用least recently used (LRU,最近最少使用)的方法進(jìn)行空間管理。
2、字典緩沖區(qū)。該緩沖區(qū)內(nèi)的信息包括用戶賬號數(shù)據(jù)、數(shù)據(jù)文件名、段名、盤區(qū)位置、表說明和權(quán)限,它也采用LRU方式管理。
3、重做日志緩沖區(qū)。該緩沖區(qū)保存為數(shù)據(jù)庫恢復(fù)過程中用于前滾操作。
4、SQL共享池。保存執(zhí)行計劃和運(yùn)行數(shù)據(jù)庫的SQL語句的語法分析樹。也采用LRU算法管理。如果設(shè)置過小,語句將被連續(xù)不斷地再裝入到庫緩存,影響系統(tǒng)性能。
另外,SGA還包括大池、JAVA池、多緩沖池。但是主要是由上面4種緩沖區(qū)構(gòu)成。對這些內(nèi)存緩沖區(qū)的合理設(shè)置,可以大大加快數(shù)據(jù)查詢速度,一個足夠大的內(nèi)存區(qū)可以把絕大多數(shù)數(shù)據(jù)存儲在內(nèi)存中,只有那些不怎么頻繁使用的數(shù)據(jù),才從磁盤讀取,這樣就可以大大提高內(nèi)存區(qū)的命中率。
三、規(guī)范與反規(guī)范設(shè)計數(shù)據(jù)庫
1、規(guī)范化
范式是符合某一級別的關(guān)系模式的集合,根據(jù)約束條件的不同,一般有1NF、2NF、3NF三種范式。規(guī)范化理論是圍繞這些范式而建立的。規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達(dá)到某種程度的“分離”,即采用“一事一地”的模式設(shè)計原則,因此,所謂規(guī)范化實(shí)質(zhì)上就是概念的單一化。數(shù)據(jù)庫中數(shù)據(jù)規(guī)范化的優(yōu)點(diǎn)是減少了數(shù)據(jù)冗余,節(jié)約了存儲空間,相應(yīng)邏輯和物理的I/O次數(shù)減少,同時加快了增、刪、改的速度。但是一個完全規(guī)范化的設(shè)計并不總能生成最優(yōu)的性能,因為對數(shù)據(jù)庫查詢通常需要更多的連接操作,從而影響到查詢的速度。故有時為了提高某些查詢或應(yīng)用的性能而有意破壞規(guī)范規(guī)則,即反規(guī)范化。
2、反規(guī)范化
⑴反規(guī)范的必要性
是否規(guī)范化的程度越高越好呢?答案是否定的,應(yīng)根據(jù)實(shí)際需要來決定,因為“分離”越深,產(chǎn)生的關(guān)系越多,結(jié)構(gòu)越復(fù)雜。關(guān)系越多,連接操作越頻繁,而連接操作是最費(fèi)時間的,在數(shù)據(jù)庫設(shè)計中特別對以查詢?yōu)橹鞯臄?shù)據(jù)庫設(shè)計來說,頻繁的連接會嚴(yán)重影響查詢速度。所以,在數(shù)據(jù)庫的設(shè)計過程中有時故意保留非規(guī)范化約束,或者規(guī)范化以后又反規(guī)范,這樣做通常是為了改進(jìn)數(shù)據(jù)庫的查詢性能,加快數(shù)據(jù)庫系統(tǒng)的響應(yīng)速度。
⑵反規(guī)范技術(shù)
在進(jìn)行反規(guī)范設(shè)計之前,要充分考慮數(shù)據(jù)的存取需求,常用表的大小、特殊的計算、數(shù)據(jù)的物理存儲等。常用的反規(guī)范技術(shù)有合理增加冗余列、派生列,或重新組表幾種。反規(guī)范化的好處是降低連接操作的需求、降低外碼和索引數(shù)目,減少表的個數(shù),從而提高查詢速度,這對于性能要求相對較高的數(shù)據(jù)庫系統(tǒng)來說,能有效地改善系統(tǒng)的性能,但相應(yīng)的問題是可能影響數(shù)據(jù)的完整性,加快查詢速度的同時降低修改速度。
3、數(shù)據(jù)庫設(shè)計中的優(yōu)化策略
數(shù)據(jù)應(yīng)當(dāng)按兩種類別進(jìn)行組織:頻繁訪問的數(shù)據(jù)和頻繁修改的數(shù)據(jù)。對于頻繁訪問但是不頻繁修改的數(shù)據(jù),內(nèi)部設(shè)計應(yīng)當(dāng)物理不規(guī)范化。對于頻繁修改但并不頻繁訪問的數(shù)據(jù),內(nèi)部設(shè)計應(yīng)當(dāng)物理規(guī)范化。比較復(fù)雜的方法是將規(guī)范化的表作為邏輯數(shù)據(jù)庫設(shè)計的基礎(chǔ),然后再根據(jù)整個應(yīng)用系統(tǒng)的需要,物理地非規(guī)范化數(shù)據(jù)。規(guī)范與反規(guī)范都是建立在實(shí)際的操作基礎(chǔ)之上的約束,脫離了實(shí)際兩者都沒有意義。只有把兩者合理地結(jié)合在一起,才能相互補(bǔ)充,發(fā)揮各自的優(yōu)點(diǎn)。
四、合理設(shè)計和管理表
1、利用表分區(qū)
分區(qū)將數(shù)據(jù)在物理上分隔開,不同分區(qū)的數(shù)據(jù)可以制定保存在處于不同磁盤上的數(shù)據(jù)文件里。這樣,當(dāng)對這個表進(jìn)行查詢時,只需要在表分區(qū)中進(jìn)行掃描,而不必進(jìn)行FTS(Full Table Scan,全表掃描),明顯縮短了查詢時間,另外處于不同磁盤的分區(qū)也將對這個表的數(shù)據(jù)傳輸分散在不同的磁盤I/O,一個精心設(shè)置的分區(qū)可以將數(shù)據(jù)傳輸對磁盤I/O競爭均勻地分散開。
2、避免出現(xiàn)行連接和行遷移
在建立表時,由于參數(shù)pctfree和pctused不正確的設(shè)置,數(shù)據(jù)塊中的數(shù)據(jù)會出現(xiàn)行鏈接和行遷移,也就是同一行的數(shù)據(jù)不保存在同一的數(shù)據(jù)塊中。如果在進(jìn)行數(shù)據(jù)查詢時遇到了這些數(shù)據(jù),那么為了讀出這些數(shù)據(jù),磁頭必須重新定位,這樣勢必會大大降低數(shù)據(jù)庫執(zhí)行的速度。因此,在創(chuàng)建表時,就應(yīng)該充分估計到將來可能出現(xiàn)的數(shù)據(jù)變化,正確地設(shè)置這兩個參數(shù),盡量減少數(shù)據(jù)庫中出現(xiàn)行鏈接和行遷移。
3、控制碎片
碎片(fragmentation)是對一組非鄰接的數(shù)據(jù)庫對象的描述。碎片意味著在執(zhí)行數(shù)據(jù)庫的功能時要耗費(fèi)額外的資源(磁盤I/O,磁盤驅(qū)動的循環(huán)延遲,動態(tài)擴(kuò)展,鏈接的塊等),并浪費(fèi)大量磁盤空間。當(dāng)兩個或多個數(shù)據(jù)對象在相同的表空間中,會發(fā)生區(qū)間交叉。在動態(tài)增長中,對象的區(qū)間之間不再相互鄰接。為
【大型ORACLE數(shù)據(jù)庫優(yōu)化設(shè)計方案】相關(guān)文章:
數(shù)據(jù)庫開題報告10-29
論我國消費(fèi)環(huán)境的優(yōu)化05-11
金融貿(mào)易結(jié)構(gòu)優(yōu)化研討05-30
變電站接地網(wǎng)優(yōu)化設(shè)計08-24
商品期貨優(yōu)化投資組合的實(shí)證檢驗08-26
稅制改革、優(yōu)化與稅收征管均衡發(fā)展06-01