Oracle優(yōu)化器二十六個參數(shù)
Oracle還是比較常用的,于是我研究了一下Oracle優(yōu)化器,在這里拿出來和大家分享一下,希望對大家有用。影響系統(tǒng)性能類可變參數(shù)
(1)CHECKPOINT_PROCESS該參數(shù)根據(jù)是否要求檢查點而設置成TRUE或者FALSE。當所有緩沖區(qū)的信息寫到磁盤時,檢查點進程(CHPT)建立一個靜態(tài)的點。在歸檔日志文件中做一個記號表示有一個檢查點發(fā)生。檢查點發(fā)生在歸檔日志轉換的時候或當達到log_checkpoint_interval定義的塊數(shù)的時候。當設置此參數(shù)為TRUE時,后臺進程CHPT便可工作。在檢查點期間內,若日志寫進程(LGWR)的性能減低,則可用CHPT進程加以改善。
(2)DB_BLOCK_CHECKPOINT_BATCH該參數(shù)的值設置得較大時,可加速檢查點的完成。當指定的值比參數(shù)DB_BLOCK_CHECKPOINT_BATCH大時,其效果和指定最大值相同。
(3)DB_BLOCK_BUFFERS該參數(shù)是在SGA中可作緩沖用的數(shù)據(jù)庫塊數(shù)。該參數(shù)決定SGA的大小,對數(shù)據(jù)庫性能具有決定性因素。若取較大的值,則可減少I/O次數(shù),但要求內存空間較大。每個緩沖區(qū)的大小由參數(shù)DB_BLOCK_SIZE決定。
(4)DB_BLOCK_SIZE該參數(shù)表示Oracle數(shù)據(jù)庫塊的大小,以字節(jié)為單位,典型值為2048或4096。該值一旦設定則不能改變。它影響表及索引的FREELISTS參數(shù)的最大值。
(5)DB_FILES該參數(shù)為數(shù)據(jù)庫運行時可打開的數(shù)據(jù)文件最大數(shù)目。
(6)DB_FILE_MULTIBLOCK_READ_COUNT該參數(shù)表示在順序掃描時一次I/O操作可讀的最大塊數(shù),該最大塊數(shù)取決于操作系統(tǒng),其值在4至16或者32是比較好。
(7)D1SCRETE_TRANSACTION_ENABLED該參數(shù)實現(xiàn)一個更簡單、更快的回滾機制,以改進某些事務類型的性能。 當設置為TRUE時,可改善某些類型的事務性能。
(8)LOG_ARCHIVE_BUFFER_SIZE此參數(shù)的值依賴于操作系統(tǒng),它與LOG_ARCHIVE_BUFFER 參數(shù)一起用于調整有歸檔日志的運行,使其運行速度盡量加快,但不能快到降低性能。僅當直接歸檔到磁帶設備時才需要增加這些參數(shù)的值,重做日志緩沖區(qū)要等待歸檔日志緩沖區(qū)變得可用。
(9)LOG_ARCHIVE_BUFFER該參數(shù)指定用于歸檔的日志時的緩沖區(qū)數(shù)。
(10)LOG_BUFFER該參數(shù)指明分配給SGA中的日志緩沖區(qū)的字節(jié)數(shù),該參數(shù)值較大時,可減少日志I/O的次數(shù)。對于繁忙的系統(tǒng)不宜采用大于或等于64K的值。缺省值-般為數(shù)據(jù)庫塊的4倍。
(11)LOG_CHECKPOINT_TIMEOUT該參數(shù)指明兩個檢查點之間的時間間隔,若指定為0時,則說明不允許進行基于時間的檢查點。
(12)LOG_CHECKPOINT_INTERVAL該參數(shù)用來確定檢查點進程的執(zhí)行頻率。這個數(shù)值設置成取檢查點之前處理的重做緩沖區(qū)塊的數(shù)量。
(13)LOG_FILES該參數(shù)指定運行期間數(shù)據(jù)庫可打開的日志文件數(shù)。若需要較大的SGA空間,而不需多個日志文件,則可減少該值。
(14)LOG_SIMULTANEOUS_COPIES該參數(shù)是日志緩沖區(qū)副本閂鎖的最大數(shù),為同時寫日志項所用。為提高性能,可設置此參數(shù)為兩倍的CPU數(shù),對單進程系統(tǒng),該值多數(shù)設置為0,此時斷開閂鎖。
(15)LOG_SMALL_ENTRY_MAX_SIZE該參數(shù)與LOG_SIMULTANEOUS_COPIES參數(shù)配合使用。若日志項大于此項,則在給緩沖區(qū)分配空間并獲得日志復制閂鎖之后,用戶進程釋放日志復制閂鎖。
(16)OPTIMIZRER_MODE若該參數(shù)的值為RULE,則Oracle優(yōu)化器選擇基于規(guī)則的優(yōu)化;若設置為COST,并且在數(shù)據(jù)字典中存在有統(tǒng)計信息,則Oracle優(yōu)化器選擇基于代價的優(yōu)化方法進行優(yōu)化。
(17)SEQUENCE_CACHE_ENTRIES該參數(shù)指明在SGA中可進行高速緩存的序列數(shù),用于直接存取。該高速緩存區(qū)是基于最近最少使用(LRU)的算法進行管理的。若此值設置得較高,則可達到較高的并發(fā)性。
(18)SEQUENCE_CACHE_HASH_BUCKETS該參數(shù)用于加速查看高速緩沖區(qū)最近請求的最新序列的桶式地址數(shù),每個桶式地址占8個字節(jié)。高速緩沖區(qū)以散列表排列,該參數(shù)應為質數(shù)。
(19)SERIALIZEABLE此參數(shù)用于保證重復讀的一致性。當它設置為TRUE時,查詢可保證表級讀一致,以防止在此查詢提交之前的修改。
(20)SHARED_POOL_SIZE該參數(shù)指定共享池的大小,其中包括共享光標及存儲過程。在多用戶系統(tǒng)中,較大的SHARED_POOL_SIZE值可改善SQL語句的執(zhí)行性能,但較小的值可節(jié)省內存。
(21)SMALL_TABLE_THRESHOLD該參數(shù)決定SGA中用于掃描的緩沖區(qū)的數(shù)目,若表的數(shù)目小于該值,則該表可整個地讀入高速緩存區(qū)。若表大于該值,則立即重用該緩沖區(qū)。一般用缺省值可使性能最好。
(22)SORT_AREA_TETAINED_SIZE這是會話內存的最大數(shù)量,用于內存排序。當從排序空間提出最后-行時,便釋放該內存。若排序要較大的內存,則分配一臨時段,排序便可在盤上進行。用于排序的最大總量可由SORT_AREA_SIZE指定,而不用此參數(shù)??梢苑峙渫瑯哟笮〉亩鄠€排序空間,不過一般對于復雜的查詢才需要。
(23)SORT_AREA_SIZE該參數(shù)用于指定進行外排序(磁盤)時所需PGA內存的最大數(shù)量,以字節(jié)為單位。當排序行寫入磁盤時,該內存被釋放。增大該參數(shù)的值,可改進排序效率。一般不調整該參數(shù),除非排序量很大時才調整。
(24)SORT_SPACEMP_SIZE該參數(shù)僅在排序量很大時才調整該參數(shù)。可用下式設置該參數(shù),使排序能最佳地使用盤空間。
(25)SQLTRACE該參數(shù)設置為TRUE時,便可跟蹤,以獲得改善性能的信息。因為跟蹤會增加開銷,所以一般僅在收集信息時才置為TRUE。在實際使用時,可用ALTER SESSION命令覆蓋它。
(26)TRANSACTION該參數(shù)設置并發(fā)事務的最大數(shù)。若此值較大,則需增加SGA空間和分配的回滾段數(shù)量。缺省值大于PROCESS時,可允許遞歸事務。
【編輯推薦】