資源描述:
《大型oracle數(shù)據(jù)庫優(yōu)化設(shè)計方案 》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、大型ORACLE數(shù)據(jù)庫優(yōu)化設(shè)計方案摘要主要從大型數(shù)據(jù)庫ORACLE環(huán)境四個不同級別的調(diào)整分析入手,分析ORACLE的系統(tǒng)結(jié)構(gòu)和工作機理,從九個不同方面較全面地總結(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)整是ORACLERDBMS級的調(diào)整,第三級是數(shù)據(jù)庫設(shè)計級的調(diào)整,最后一個調(diào)整級是SQL級。通常依此四級調(diào)整級別對數(shù)據(jù)庫進行調(diào)整、優(yōu)化,數(shù)據(jù)庫的整體性能會得到很大的改善。下面從九個不同方面介紹ORACLE數(shù)據(jù)庫優(yōu)化設(shè)計方案。一.數(shù)
2、據(jù)庫優(yōu)化自由結(jié)構(gòu)OFA(OptimalflexibleArchitecture)數(shù)據(jù)庫的邏輯配置對數(shù)據(jù)庫性能有很大的影響,為此,ORACLE公司對表空間設(shè)計提出了一種優(yōu)化結(jié)構(gòu)OFA。使用這種結(jié)構(gòu)進行設(shè)計會大大簡化物理設(shè)計中的數(shù)據(jù)管理。優(yōu)化自由結(jié)構(gòu)OFA,簡單地講就是在數(shù)據(jù)庫中可以高效自由地分布邏輯數(shù)據(jù)對象,因此首先要對數(shù)據(jù)庫中的邏輯對象根據(jù)他們的使用方式和物理結(jié)構(gòu)對數(shù)據(jù)庫的影響來進行分類,這種分類包括將系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)分開、一般數(shù)據(jù)和索引數(shù)據(jù)分開、低活動表和高活動表分開等等。二、充分利用系統(tǒng)全局區(qū)域SGA(SYSTEMGLOBALAREA)SGA是oracle數(shù)據(jù)庫
3、的心臟。用戶的進程對這個內(nèi)存區(qū)發(fā)送事務(wù),并且以這里作為高速緩存讀取命中的數(shù)據(jù),以實現(xiàn)加速的目的。正確的SGA大小對數(shù)據(jù)庫的性能至關(guān)重要。SGA包括以下幾個部分:2、字典緩沖區(qū)。該緩沖區(qū)內(nèi)的信息包括用戶賬號數(shù)據(jù)、數(shù)據(jù)文件名、段名、盤區(qū)位置、表說明和權(quán)限,它也采用LRU方式管理。3、重做日志緩沖區(qū)。該緩沖區(qū)保存為數(shù)據(jù)庫恢復(fù)過程中用于前滾操作。4、SQL共享池。保存執(zhí)行計劃和運行數(shù)據(jù)庫的SQL語句的語法分析樹。也采用LRU算法管理。如果設(shè)置過小,語句將被連續(xù)不斷地再裝入到庫緩存,影響系統(tǒng)性能。另外,SGA還包括大池、JAVA池、多緩沖池。但是主要是由上面4種緩沖區(qū)構(gòu)成。對這
4、些內(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ī)范化2、反規(guī)范化⑴反規(guī)范的必要性是否規(guī)范化的程度越高越好呢?答案是否定的,應(yīng)根據(jù)實際需要來決定,因為“分離”越深,產(chǎn)生的關(guān)系越多,結(jié)構(gòu)越復(fù)雜。關(guān)系越多,連接操作越頻繁,而連接操作是最費時間的,在數(shù)據(jù)庫設(shè)計中特別對以查詢?yōu)橹鞯臄?shù)據(jù)庫設(shè)計來說,頻繁的連接會嚴重影響查詢速度。所以,在數(shù)據(jù)庫的設(shè)計過程中有時故意保留非規(guī)范化約束,或者規(guī)范化以后又反規(guī)范,這樣做通常是為了改
5、進數(shù)據(jù)庫的查詢性能,加快數(shù)據(jù)庫系統(tǒng)的響應(yīng)速度。⑵反規(guī)范技術(shù)在進行反規(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)按兩種類別進行組織:頻繁訪問的數(shù)據(jù)和頻繁修改的數(shù)據(jù)。對于頻繁訪問但是不頻繁修改的數(shù)據(jù),內(nèi)部設(shè)計應(yīng)當(dāng)物理不規(guī)范化。
6、對于頻繁修改但并不頻繁訪問的數(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ī)范都是建立在實際的操作基礎(chǔ)之上的約束,脫離了實際兩者都沒有意義。只有把兩者合理地結(jié)合在一起,才能相互補充,發(fā)揮各自的優(yōu)點。四、合理設(shè)計和管理表1、利用表分區(qū)分區(qū)將數(shù)據(jù)在物理上分隔開,不同分區(qū)的數(shù)據(jù)可以制定保存在處于不同磁盤上的數(shù)據(jù)文件里。這樣,當(dāng)對這個表進行查詢時,只需要在表分區(qū)中進行掃描,而不必進行FTS(FullTableScan,全表掃描),明顯縮短了查詢時間,另外處于不同磁盤的分區(qū)也將對這個
7、表的數(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ù)塊中。如果在進行數(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)是對一組非鄰接的