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