Oracle優(yōu)化配置_第1頁
Oracle優(yōu)化配置_第2頁
Oracle優(yōu)化配置_第3頁
Oracle優(yōu)化配置_第4頁
Oracle優(yōu)化配置_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)一樣,在計(jì)算機(jī)上安裝成功后,還需要進(jìn)一步配置和優(yōu)化,從而使其具有更強(qiáng) 大的功能和運(yùn)行在最佳狀態(tài)。如果在設(shè)計(jì)階段因?yàn)楦鞣N因素沒有進(jìn)行較為合理的配置和計(jì)劃,那么就需要 在后期對數(shù)據(jù)庫系統(tǒng)進(jìn)行優(yōu)化。數(shù)據(jù)庫系統(tǒng)性能的優(yōu)化,除了在設(shè)計(jì)階段對其邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)設(shè)計(jì)進(jìn)行優(yōu)化,使之在滿足需 求條件下,時(shí)空開銷性能最佳外,還可在運(yùn)行階段,采取一些優(yōu)化措施,使系統(tǒng)性能最佳。本專題所討論 的性能優(yōu)化主要指運(yùn)行階段的性能優(yōu)化,即討論如何使用Oracle所提供的優(yōu)化手段來提高系統(tǒng)性能。大多數(shù)性能問題并不是一種孤立的癥狀,而是系統(tǒng)設(shè)計(jì)的結(jié)果,因此性能優(yōu)化就集中在那些導(dǎo)致不可接受特征 的同一的

2、、固定的和潛在的問題上。優(yōu)化是數(shù)據(jù)庫設(shè)計(jì)中計(jì)劃“、設(shè)計(jì)"、監(jiān)視“和優(yōu)化”四大步驟的最后一步。除了用Oracle優(yōu)化器來優(yōu)化數(shù)據(jù)庫的性能外,DBA還可通過優(yōu)化Oracle的參數(shù)設(shè)置等手段來優(yōu)化數(shù)據(jù)庫的性能,對參數(shù)的細(xì)微優(yōu)化便能影響系統(tǒng)整體性能。為了有目的優(yōu)化系統(tǒng)性能,首先應(yīng)明確優(yōu)化目標(biāo),然后再根據(jù)目標(biāo)優(yōu)化各種初始參數(shù)的設(shè)置,以達(dá)到更好 效果。可有如下幾個(gè)優(yōu)化目標(biāo): 應(yīng)用程序設(shè)計(jì)的優(yōu)化 指定類型SQL語句的優(yōu)化 內(nèi)存使用的優(yōu)化 數(shù)據(jù)存儲、物理存儲和邏輯存儲的優(yōu)化 網(wǎng)絡(luò)通信量的優(yōu)化DBA可選定上述一個(gè)或多個(gè)目標(biāo)來實(shí)施優(yōu)化。性能優(yōu)化主要是通過優(yōu)化初始化參數(shù)來實(shí)現(xiàn)。本專題從以下 幾個(gè)方面來談?wù)?/p>

3、如何優(yōu)化 Oracle數(shù)據(jù)庫,使其具有最佳性能。(1)優(yōu)化初始參數(shù)(2)優(yōu)化內(nèi)存優(yōu)化I/O(4)優(yōu)化資源爭用(5)其它參數(shù)優(yōu)化可變參數(shù)的優(yōu)化在Oracle數(shù)據(jù)庫進(jìn)行優(yōu)化時(shí),需要用到許多的參數(shù),其中有一部分參數(shù)對系統(tǒng)性能影響較大,這部 分參數(shù)叫可變參數(shù)??勺儏?shù)按其作用可以分為兩大類,一大類是起限制作用的,如 OPEN_CURSORS 另一大類是影響系統(tǒng)性能的,如DB_BLOCK_BUFFERS 。在進(jìn)行數(shù)據(jù)庫系統(tǒng)性能優(yōu)化時(shí),需要熟練掌握和了解一些可變參數(shù)。本文討論了一些對系統(tǒng)性能有較大影 響的參數(shù)。限制類可變參數(shù)(1)DML_LOCKS該參數(shù)表明多少個(gè)用戶,可同時(shí)能修改多少張表。例如:有三個(gè)用

4、戶同時(shí)修改二張表,則要求表上的總數(shù) 為6。若置為0,則組織隊(duì)列不起作用,其性能會(huì)稍有提高。使用該參數(shù)時(shí)不能用DROP TABLE、CREATE INDEX 或顯式封鎖。(2)LICENSE_MAX_SESSION該參數(shù)指出允許并發(fā)用戶會(huì)話的最大數(shù)。若此參數(shù)為0,則不能實(shí)施并發(fā)。若并發(fā)的用戶會(huì)話數(shù)已達(dá)到此極限,則只有具有RESTRICTED SESSION 權(quán)限的用戶才能連接到服務(wù)器。(3)LICENSE_MAX_USERS該參數(shù)指出在一個(gè)數(shù)據(jù)庫上可建立的最大用戶數(shù)。當(dāng)達(dá)到最大值時(shí),便不能再建新用戶,可改變此值以放 松限制。在LICENSE_MAX_SESSION 或LICENSE_MAX_US

5、ER 為0時(shí),貝U并發(fā)會(huì)話或任何用戶者B不 能用。若對不同的實(shí)例,此參數(shù)不同時(shí),則以第一個(gè)登錄的數(shù)據(jù)庫實(shí)例的參數(shù)為準(zhǔn)。(4)MAX_DUMP_FILE_SIZE該參數(shù)指定操作系統(tǒng)中寫跟蹤文件的塊的最大值??捎么酥祦硐拗聘櫸募目臻g。(5)OPEN_CURSORS該參數(shù)指明一個(gè)用戶進(jìn)程能同時(shí)打開光標(biāo)的最大數(shù),它能限制每個(gè)用戶進(jìn)程占用的內(nèi)存空間量。(6)OPEN_LINKS該參數(shù)指定并發(fā)連接到遠(yuǎn)程數(shù)據(jù)庫的最大用戶進(jìn)程數(shù)。若同時(shí)引用多個(gè)數(shù)據(jù)庫,則應(yīng)該增大該值。例如:同時(shí)交替訪問A、B和C三個(gè)數(shù)據(jù)庫時(shí),若 OPEN_LINKS設(shè)置為2,則需花費(fèi)等待連接時(shí)間。此參數(shù)只用于分布事務(wù)。若該參數(shù)設(shè)置為 0

6、,則不允許進(jìn)行分布事務(wù)處理。(7)PROCESS該參數(shù)指定同時(shí)連接到 Oracle服務(wù)器上的最大用戶進(jìn)程數(shù)。該參數(shù)值包括6個(gè)后臺進(jìn)程和一個(gè)登錄,因此, 該參數(shù)值為20 ,則只能有13或14個(gè)并發(fā)用戶連接到服務(wù)器。(8)ROW_LOCKING該參數(shù)指定行封鎖方式。若設(shè)置為“ALWAYS,則在修改表時(shí)只實(shí)施行封鎖。若設(shè)置為“INTENT時(shí),則行封鎖只適用于SELECT FOR UPDATE ,而在修改時(shí)實(shí)施表封鎖。影響系統(tǒng)性能類可變參數(shù)(1)CHECKPOINT_PROCESS該參數(shù)根據(jù)是否要求檢查點(diǎn)而設(shè)置成TRUE或者FALSE。當(dāng)所有緩沖區(qū)的信息寫到磁盤時(shí),檢查點(diǎn)進(jìn)程(CHPT)建立一個(gè)靜態(tài)的

7、點(diǎn)。在歸檔日志文件中做一個(gè)記號表示有一個(gè)檢查點(diǎn)發(fā)生。檢查點(diǎn)發(fā)生在歸檔日志轉(zhuǎn)換的時(shí)候或當(dāng)達(dá)到log_checkpoint_interval 定義的塊數(shù)的時(shí)候。當(dāng)設(shè)置此參數(shù)為TRUE時(shí),后臺進(jìn)程CHPT便可工作。在檢查點(diǎn)期間內(nèi),若日志寫進(jìn)程(LGWR)的性能減低,則可用 CHPT進(jìn)程加以改善。(2)DB_BLOCK_CHECKPOINT_BATCH該參數(shù)的值設(shè)置得較大時(shí),可加速檢查點(diǎn)的完成。當(dāng)指定的值比參數(shù) DB_BLOCK_CHECKPOINT_BATCH 大時(shí),其效果和指定最大值相同。(3)DB_BLOCK_BUFFERS該參數(shù)是在SGA中可作緩沖用的數(shù)據(jù)庫塊數(shù)。該參數(shù)決定 SGA的大小,對數(shù)

8、據(jù)庫性能具有決定性因素。若取較大的值,則可減少I/O次數(shù),但要求內(nèi)存空間較大。每個(gè)緩沖區(qū)的大小由參數(shù)DB_BLOCK_SIZE 決定。(4)DB_BLOCK_SIZE該參數(shù)表示Oracle數(shù)據(jù)庫塊的大小,以字節(jié)為單位,典型值為2048或4096。該值一旦設(shè)定則不能改變。它影響表及索引的FREELISTS參數(shù)的最大值。(5) DB_FILES該參數(shù)為數(shù)據(jù)庫運(yùn)行時(shí)可打開的數(shù)據(jù)文件最大數(shù)目。(6)DB_FILE_MULTIBLOCK_READ_COUNT該參數(shù)表示在順序掃描時(shí)一次I/O操作可讀的最大塊數(shù),該最大塊數(shù)取決于操作系統(tǒng),其值在 4至16或者32是比較好。(7)D1SCRETE_TRANSA

9、CTION_ENABLED該參數(shù)實(shí)現(xiàn)一個(gè)更簡單、更快的回滾機(jī)制,以改進(jìn)某些事務(wù)類型的性能。當(dāng)設(shè)置為TRUE時(shí),可改善某些類型的事務(wù)性能。(8)LOG_ARCHIVE_BUFFER_SIZE此參數(shù)的值依賴于操作系統(tǒng),它與LOG_ARCHIVE_BUFFER 參數(shù)一起用于調(diào)整有歸檔日志的運(yùn)行,使其運(yùn)行速度盡量加快,但不能快到降低性能。僅當(dāng)直接歸檔到磁帶設(shè)備時(shí)才需要增加這些參數(shù)的值,重做日 志緩沖區(qū)要等待歸檔日志緩沖區(qū)變得可用。(9) LOG_ARCHIVE_BUFFER該參數(shù)指定用于歸檔的日志時(shí)的緩沖區(qū)數(shù)。(10) LOG_BUFFER該參數(shù)指明分配給 SGA中的日志緩沖區(qū)的字節(jié)數(shù),該參數(shù)值較大時(shí)

10、,可減少日志I/O的次數(shù)。對于繁忙的系統(tǒng)不宜采用大于或等于 64K的值。缺省值一般為數(shù)據(jù)庫塊的4倍。(11)LOG_CHECKPOINT_TIMEOUT該參數(shù)指明兩個(gè)檢查點(diǎn)之間的時(shí)間間隔,若指定為0時(shí),則說明不允許進(jìn)行基于時(shí)間的檢查點(diǎn)。(12) LOG_CHECKPOINT_INTERVAL該參數(shù)用來確定檢查點(diǎn)進(jìn)程的執(zhí)行頻率。這個(gè)數(shù)值設(shè)置成取檢查點(diǎn)之前處理的重做緩沖區(qū)塊的數(shù)量。(13)LOG_FILES該參數(shù)指定運(yùn)行期間數(shù)據(jù)庫可打開的日志文件數(shù)。若需要較大的SGA空間,而不需多個(gè)日志文件,則可減少該值。(14)LOG_SIMULTANEOUS_COPIES該參數(shù)是日志緩沖區(qū)副本閂鎖的最大數(shù),為

11、同時(shí)寫日志項(xiàng)所用。為提高性能,可設(shè)置此參數(shù)為兩倍的CPU數(shù),對單進(jìn)程系統(tǒng),該值多數(shù)設(shè)置為0,此時(shí)斷開閂鎖。(15)LOG_SMALL_ENTRY_MAX_SIZE該參數(shù)與LOG_SIMULTANEOUS_COPIES參數(shù)配合使用。若日志項(xiàng)大于此項(xiàng),則在給緩沖區(qū)分配空間并獲得日志復(fù)制閂鎖之后,用戶進(jìn)程釋放日志復(fù)制閂鎖。(16)OPTIMIZRER_MODE若該參數(shù)的值為RULE ,則ORACLE優(yōu)化器選擇基于規(guī)則的優(yōu)化;若設(shè)置為COST,并且在數(shù)據(jù)字典中存在有統(tǒng)計(jì)信息,則優(yōu)化器選擇基于代價(jià)的優(yōu)化方法進(jìn)行優(yōu)化。(17)SEQUENCE_CACHE_ENTRIES該參數(shù)指明在SGA中可進(jìn)行高速緩存的

12、序列數(shù),用于直接存取。該高速緩存區(qū)是基于最近最少使用(LRU)的算法進(jìn)行管理的。若此值設(shè)置得較高,則可達(dá)到較高的并發(fā)性。(18)SEQUENCE_CACHE_HASH_BUCKETS該參數(shù)用于加速查看高速緩沖區(qū)最近請求的最新序列的桶式地址數(shù),每個(gè)桶式地址占8個(gè)字節(jié)。高速緩沖區(qū)以散列表排列,該參數(shù)應(yīng)為質(zhì)數(shù)。(19)SERIALIZEABLE此參數(shù)用于保證重復(fù)讀的一致性。當(dāng)它設(shè)置為TRUE時(shí),查詢可保證表級讀一致,以防止在此查詢提交之前的修改。(20)SHARED_POOL_SIZE該參數(shù)指定共享池的大小,其中包括共享光標(biāo)及存儲過程。在多用戶系統(tǒng)中,較大的SHARED_POOL_SIZE 值可改善

13、SQL語句的執(zhí)行性能,但較小的值可節(jié)省內(nèi)存。(21)SMALL_TABLE_THRESHOLD該參數(shù)決定SGA中用于掃描的緩沖區(qū)的數(shù)目,若表的數(shù)目小于該值,則該表可整個(gè)地讀入高速緩存區(qū)。若 表大于該值,則立即重用該緩沖區(qū)。一般用缺省值可使性能最好。(22)SORT_AREA_TETAINED_SIZE這是會(huì)話內(nèi)存的最大數(shù)量,用于內(nèi)存排序。當(dāng)從排序空間提出最后一行時(shí),便釋放該內(nèi)存。若排序要較大的內(nèi)存,則分配一臨時(shí)段,排序便可在盤上進(jìn)行。用于排序的最大總量可由SORT_AREA_SIZE 指定,而不用此參數(shù)??梢苑峙渫瑯哟笮〉亩鄠€(gè)排序空間,不過一般對于復(fù)雜的查詢才需要。(23) SORT_AREA

14、_SIZE該參數(shù)用于指定進(jìn)行外排序(磁盤)時(shí)所需PGA內(nèi)存的最大數(shù)量,以字節(jié)為單位。當(dāng)排序行寫入磁盤時(shí),該 內(nèi)存被釋放。增大該參數(shù)的值,可改進(jìn)排序效率。一般不調(diào)整該參數(shù),除非排序量很大時(shí)才調(diào)整。(24) SORT_SPACEMP_SIZE該參數(shù)僅在排序量很大時(shí)才調(diào)整該參數(shù)??捎孟率皆O(shè)置該參數(shù),使排序能最佳地使用盤空間:(total_sort_bytes) /(SORT_AREA_SIZE)十 64其中,total_sort_bytes 為:(number_of_records)*sum_of_aver_average_column_sizes+(12*number of(al)(25)SQLT

15、RACE該參數(shù)設(shè)置為TRUE時(shí),便可跟蹤,以獲得改善性能的信息。因?yàn)楦檿?huì)增加開銷,所以一般僅在收集信 息時(shí)才置為TRUE o在實(shí)際使用時(shí),可用 ALTER SESSION 命令覆蓋它。(26)TRANSACTION該參數(shù)設(shè)置并發(fā)事務(wù)的最大數(shù)。若此值較大,則需增加SGA空間和分配的回滾段數(shù)量。缺省值大于PROCESS時(shí),可允許遞歸事務(wù)。優(yōu)化內(nèi)存內(nèi)存的優(yōu)化歷來都是數(shù)據(jù)庫或者操作系統(tǒng)優(yōu)化的重中之重。在Oracle數(shù)據(jù)庫體系結(jié)構(gòu)中內(nèi)存優(yōu)化也是性能優(yōu)化的關(guān)鍵。優(yōu)化內(nèi)存主要是通過優(yōu)化內(nèi)存結(jié)構(gòu)來提高系統(tǒng)性能。這里所說的內(nèi)存結(jié)構(gòu)主要由專用SQL及PL/SQL區(qū)、共享池、日志緩沖區(qū)和高速緩沖存儲區(qū)構(gòu)成。由于0

16、racle的內(nèi)存結(jié)構(gòu)需求與應(yīng)用密切相關(guān),所以內(nèi)存結(jié)構(gòu)優(yōu)化應(yīng)在SQL語句和應(yīng)用程序優(yōu)化之后以及輸入/輸出(I/O)優(yōu)化之前進(jìn)行。而且首先要優(yōu)化操作系統(tǒng),并在處理共享池前考慮私有SQL和PL/SQL區(qū)。優(yōu)化SGASGA本身需要頻SGA全部被駐SGA是對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行快速訪問的一個(gè)系統(tǒng)全局區(qū),其大小在實(shí)例啟動(dòng)時(shí)被確定。若 繁地進(jìn)行釋放、分配,則不可能達(dá)到快速訪問數(shù)據(jù)的目的。因此為了優(yōu)化系統(tǒng)性能,應(yīng)確保 留在實(shí)際內(nèi)存中,而不應(yīng)采用虛擬內(nèi)存,以免使整個(gè)系統(tǒng)性能下降。SGA小常識SGA是Oracle為一個(gè)實(shí)例分配的一組共享內(nèi)存緩沖區(qū)。它包含該實(shí)例的數(shù)據(jù)和控制信息。如果有多個(gè)用戶同時(shí)與同一個(gè)實(shí)例相連接時(shí),則

17、其SGA中的數(shù)據(jù)可為多個(gè)用戶共享,所以也叫它共享全局區(qū)。 SGA在實(shí)例啟動(dòng)時(shí)被自動(dòng)分配,當(dāng)實(shí)例關(guān)閉時(shí)被收回。SGA中的數(shù)據(jù)和控制信息可被多個(gè)進(jìn)程所使用,但只能由幾個(gè)持殊進(jìn)程能對其進(jìn)行寫操作。SGA中所包含的存儲區(qū)根據(jù)其存放的信息類型大致可分為數(shù)據(jù)庫緩沖存儲區(qū)”、目志緩沖區(qū)”、共享池”和請求和響應(yīng)隊(duì)列”四大區(qū)域。查看SGA大小用戶可以通過兩種命令方式來查看SGA的大小。(1 )使用“SHOWSGA命令說明:用戶可以連接到 Sever Manager和數(shù)據(jù)庫,然后執(zhí)行 “SHOWSGA命令來查看SGA的大小。如果 數(shù)據(jù)庫實(shí)例沒有啟動(dòng),那么使用“SHOWSGA命令將會(huì)報(bào)錯(cuò)。(2)使用“SELECT*

18、 FROM V$SGA ; ”查詢試圖命令說明:使用“SELECT* FROM V$SGA;要在“SVRMGR提示符下。預(yù)裝SGA可以在init.ora文件中將參數(shù)PRE_PAGE_SGA 的值設(shè)為“yes;而將SGA預(yù)裝到物理內(nèi)存中,即設(shè)置 PRE_PAGE_SGA=yes 。優(yōu)化專用SQL區(qū)及PL/SQL區(qū)要優(yōu)化專用的SQL區(qū)及PL/SQL區(qū),就必須知道是否有不必要的語法分析調(diào)用,用戶必須盡量少的調(diào)用Parse。如果有過多的不必要的語法分析調(diào)用,就應(yīng)當(dāng)設(shè)法減少它??捎酶櫣δ軄頌槊總€(gè) SQL語句輸出跟蹤信息,以檢測其語法分析步的統(tǒng)計(jì)數(shù)字count。若分析步的count 統(tǒng)計(jì)值與執(zhí)行步的co

19、unt統(tǒng)計(jì)值非常接近,則應(yīng)減少語法分析調(diào)用。減少語法分析調(diào)用的方法是通過所用的應(yīng)用開發(fā)工具(如PRO*C、OCI和SQL*Forms等)來控制語法分析調(diào)用以及分配和釋放專用的 SQL區(qū)的頻率,例如:在用 PRO*C時(shí),可用HOLD_CURSOR、 RELEASE_CURSOR 以及MAX_OPENCURSOR 參數(shù)來控制專用 SQL區(qū)。在使用OCI時(shí),可使用OSQL3 或OPARSE調(diào)用來為SQL語句分配專用SQL區(qū),用OCLOSE調(diào)用關(guān)閉光標(biāo)和釋放專用 SQL區(qū)。在使 用SQL *Forms時(shí),同樣也可控制是否重用專用SQL區(qū):可在觸發(fā)器級、Form級或在運(yùn)行時(shí)減少語法分析調(diào)用,以減少或重用

20、專用 SQL區(qū)。優(yōu)化日志緩沖區(qū)日志緩沖區(qū)也稱為重做日志緩沖區(qū),它包含所有變化了的數(shù)據(jù)塊。這些變化的數(shù)據(jù)塊通過Oracle日志書寫進(jìn)程以一種鄰接的方式寫到重做日志文件中。(1)獲取緩沖區(qū)活動(dòng)情況優(yōu)化日志緩沖區(qū)時(shí),首先應(yīng)了解緩沖區(qū)的活動(dòng)情況 。這對通過查詢動(dòng)態(tài)性能表 (需有SELECT ANY TABLE 特權(quán))V$SYSSTAT來獲得。SVRMGR> select sum(value)"Redo Buffer Waits" from v$sysstat 2> where name='redo log space wait time'(2)計(jì)算日志緩

21、沖區(qū)的申請失敗率 數(shù)據(jù)庫管理員可以通過執(zhí)行下述語句: SQL>select name,value from v$sysstat where name in ('redo entries','redo log space requests') ; 查看 日志緩沖區(qū)的使用情況。查詢出的結(jié)果可以計(jì)算出日志緩沖區(qū)的申請失敗率。申請失敗率=requests/entries。申請失敗率應(yīng)該接近于0,否則說明日志緩沖區(qū)開設(shè)太小,需要增加ORACLE數(shù)據(jù)庫的日志緩沖區(qū)。(3)優(yōu)化日志緩沖區(qū)如果重做緩沖區(qū)的等待大于零,進(jìn)程就要等待重做日志緩沖區(qū)的空間變成可用。此時(shí)就會(huì)影響數(shù)

22、據(jù)庫的性 能??梢酝ㄟ^逐步提高init.ora中參數(shù)LOG_BUFFER 的值來達(dá)到優(yōu)化日志緩沖區(qū)的目的。在增加 LOG_BUFFER的值時(shí),可通過查詢動(dòng)態(tài)性能表來了解和檢查日志緩沖區(qū)的活動(dòng)情況。優(yōu)化共享池共享池由庫高速緩存、字典高速緩存和SQL區(qū)組成。整個(gè)共享池的大小由參數(shù)SHARED_POOL_SIZE 確定。共享池的優(yōu)化主要考慮庫高速緩沖區(qū)、數(shù)據(jù)字典高速緩沖區(qū)以及會(huì)話期間信息的優(yōu)化。優(yōu)化庫高速緩沖區(qū)要優(yōu)化庫高速緩沖區(qū),必須首先了解該緩沖區(qū)的活動(dòng)情況。庫高速緩沖區(qū)的活動(dòng)統(tǒng)計(jì)信息保留在動(dòng)態(tài)性能 表V$LIBRARYCACHE 中。優(yōu)化時(shí)應(yīng)使數(shù)據(jù)字典高速緩存里的內(nèi)存數(shù)據(jù)庫塊盡可能多。(1)確定

23、庫高速緩存的性能通過查詢V$LIBRARYCACHE 表(需有SELECT ANY TABLE 特權(quán))來了解其活動(dòng)情況,以決定如何優(yōu)化。 例如:SQL >SELECT SUM(pins) , SUM(reloads) FROM V$LIBRARYCACHE ;說明:動(dòng)態(tài)性能表 V$LIBRARYCACHE 中包含有 NAMESPACE 、PINS和RELOAD 等歹U。其中NAMESPACE 列反映了 SQL語句及 PL/SQL塊的庫緩沖區(qū)的活動(dòng),其值可能是 SQAREA , 'TABLE /PROCEDURE , 'BOD呼口 TRIGGER等;而PINS和RELOAD

24、S 列給出執(zhí)行調(diào)用時(shí)的錯(cuò)誤信息 。PINS 列給出SQL語句、PL/SQL塊及被訪問對象定義的總次數(shù); RELOADS給出SQL語句或PL/SQL塊的 隱式分析或?qū)ο蠖x重裝載時(shí)在庫程序緩沖區(qū)中發(fā)生的錯(cuò)誤。(2)查看reloads和pins的比率可以使用以下查詢語句來查看reloads和pins的比率:SELECT (SUM(reloads)ZSUM(pins) ) x 100 "Librarache Ratio” FROMV$LIBRARYCACHE ;用戶必須保證reloads和pins的比率盡可能低,其值應(yīng)低于1%,若RELOADS /PINS >1 %,則應(yīng)給緩沖區(qū)分配

25、附加的存儲及寫等同的 SQL語句,使SQL語句與PLZSQL塊共享一個(gè)共享SQL區(qū),這樣可減少 錯(cuò)誤。如果庫高速緩沖區(qū)無錯(cuò)誤,則可設(shè)置初始化參數(shù)CUTSOR_SPACE_FOR_TIME 為TRUE ,以加速執(zhí)行調(diào)用。這可使性能稍有改善。若每個(gè)用戶可用的專用SQL區(qū)不足時(shí),則不要將CUTSOR_SPACE_FOR_TIME 設(shè)置為 TRUE。(3)優(yōu)化庫高速緩存區(qū)優(yōu)化庫高速緩存時(shí),可以通過增加init.ora文件中SHARED_POOL_SIZE 或OPEN_CURSORS 的參數(shù)值而達(dá)到滿意的優(yōu)化比率。優(yōu)化數(shù)據(jù)字典緩沖區(qū)數(shù)據(jù)字典緩沖區(qū)在功能上與庫高速緩存類似,但主要用于Oracle字典高速S

26、QL語句。要優(yōu)化數(shù)據(jù)字典緩沖區(qū),也必須先查看數(shù)據(jù)字典緩沖區(qū)的使用情況及效果,然后依此來進(jìn)行優(yōu)化。數(shù)據(jù)字典緩沖區(qū)的使用情況記錄在動(dòng)態(tài)性能表 V$ROWCHACHE 中,其中有如下幾列:PARAMETER :記錄某類特寫數(shù)據(jù)字典項(xiàng)的統(tǒng)計(jì),其值以de開始,例如某文件描述的統(tǒng)計(jì)為de_filesGETS :是對相應(yīng)項(xiàng)請求次數(shù)的統(tǒng)計(jì)。GETTMISSES :是引起緩沖區(qū)出錯(cuò)的數(shù)據(jù)請求次數(shù)。可用如下語句來查詢 V$ROWCHACHE 表:SQL >SELECT (SUM(getmisses)ZSUM(gets)*100 " DaTiDictionary Cache Ratio ” FROM

27、/$ROWCHACHE ;對于貧繁訪問的數(shù)據(jù)字典緩沖區(qū),GETMISSES與GETS之比要小于10 %到15%。若大于此百分?jǐn)?shù)時(shí),貝U應(yīng)考慮增力口數(shù)據(jù)字典緩沖區(qū)的容量,即要增力口SHARED_POOL_SIZE 或者DB_BLOCK_BUFFERS 初始化參數(shù)的值。使用多線索服務(wù)器時(shí)共享池的優(yōu)化在多線索服務(wù)器結(jié)構(gòu)中,會(huì)話期信息'被存放在共享池中,它包括 SQL專用區(qū)和排序區(qū)。在使用多線索服務(wù) 器時(shí),要增大共享池,以滿足需要。這也可通過增加SHARED_POOL_SIZE 的參數(shù)值來實(shí)現(xiàn)。可通過查詢(要求有SELECT ANY TABLE 特權(quán))動(dòng)態(tài)性能表 V$SESSTAT來衡量會(huì)話信息的多少。例如:SQL >SELEC SUM(value) | ' bytes Totamemory for all session ”2 > FROM V$SESSTAT3> WHERK name= ' sess

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論