Sessions & Processes parameter

zhanglei_itput發表於2010-12-15

Oracle引數設定
1.sessions
在初始化引數所設定的限制中,最為人所知的估計就是sessions和processes
Sessions 引數指定了一個 Instance中能夠同時存在的sessions數量,或者說,就是能同時登陸到資料庫的併發使用者數。通常,我們設定這個數字時需要考慮我們可能會有多少個同時連線到資料庫的併發使用者,並加上後臺程式的程式數,最後乘與1.sessions
比如說,估計系統中可能會同時有100個使用者連線到資料庫,那麼,你的session最少應該為
(100 + 10 ) * 1.1 = 121
當資料庫連線的併發使用者已經達到這個值時,又有新session連進來,就會報錯
00018, 00000, "maximum number of sessions exceeded"
// *Cause: All session state objects are in use.
// *Action: Increase the value of the SESSIONS initialization parameter.
2. Processes
和Sessions是類似的是processes這個引數。
Processes引數指定了Instance在OS層面所能同時執行的程式數。基於和sessions設定同樣的考慮,我們在設定processes時,也應考慮我們可能會有多少個同時連線到資料庫的併發使用者,並加上後臺程式的程式數。
當然,在MTS(shared server)的配置下,這個值的確定會有所不同。應該是普通後臺程式+最大共享伺服器的程式數(max_shared_servers) + 最大Dispatcher程式數(max_dispatchers).
另外,由於在window平臺中,Oracle是以單一一個程式的形式存在,Processes 引數變成了限制Oracle程式裡的執行緒數了。
當Oracle需要啟動新的process而又已經達到processes引數時,就會報錯:
00020, 00000, "maximum number of processes (%s) exceeded"
// *Cause: All process state objects are in use.
// *Action: Increase the value of the PROCESSES initialization parameter.
3.shared_pool_size
分配給資料字典,SQL和PL/SQL的記憶體
引數型別: 字元型
語法:SHARED_POOL_SIZE = integer [K | M]
引數類: 靜態 
預設值: 64位為 64MB;否則16MB
值範圍: 300KB到作業系統許可數
SHARED_POOL_SIZE以位元組指定共享池大小。共享池包括游標、儲存過程、控制結構及其它結構。PARALLEL_AUTOMATIC_TUNING = FALSE,Oracle也允許並行從共享池執行資訊。較大的值可以改善效能。較小的值可以節約記憶體。

5.1.2 共享池(SHARED_POOL_SIZE)
共享池:(shared_pool_size):資料字典,sql緩衝,pl/sql語法分析.加大可提速度。
原則:SGA中主要設定物件,一般為系統可用記憶體10%

6 引數設定例項
例項配置基本掌握的原則是, db_block_buffer 通常可以儘可能的大,shared_pool_size 要適度,log_buffer 通常大到幾百K到1M就差不多了
A、如果512M RAM
建議 shared_pool_size = 50M, db_block_buffer* db_block_size = 200M
B、如果1G RAM
建議 shared_pool_size = 100M , db_block_buffer* db_block_size = 400M
C、如果2G RAM
建議 shared_pool_size = 200M , db_block_buffer *db_block_size = 800M
C、如果256M RAM  則引數設定如下:
Shared pool
動態引數shared_pool_size= 25M
靜態引數shared_pool_reserved_size= 2M
動態引數open_cursors= 300
靜態引數cursor_space_for_time= TRUE
靜態引數session_cached_cursors= 60

4.large_pool_size
分配給大的PL/SQL的large池的塊總數
5.java_pool_size
為JVM裡使用的java儲存過程所分配的記憶體

參考文獻:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-681837/,如需轉載,請註明出處,否則將追究法律責任。

相關文章