Sga的結構

sunwgneuqsoft發表於2007-12-01

共享池:“共享池”指定共享池的大小。共享池包含共享遊標、儲存的過程、控制結構、並行執行訊息緩衝區以及其它內容。值越大,多使用者系統的效能就越好。值越小,使用的記憶體就越少。該值被指定為初始化檔案引數 SHARED_POOL_SIZE

注:SHARED_POOL_SIZE的值越大,可以快取的遊標,sql就越多,資料庫的速度越快;過大的SHARED_POOL_SIZE會導致latch的爭用,會導致嚴重的效能問題。這個引數的修改要慎重,要對系統有個全面的瞭解後才能修改。

[@more@]

緩衝區快取記憶體:“緩衝區快取記憶體”指定資料庫緩衝區快取記憶體中的緩衝區數。快取記憶體中的每個緩衝區的大小為一個 Oracle 資料塊的大小(該大小由初始化引數 DB_BLOCK_SIZE 指定)。因此,快取記憶體中的每個資料庫緩衝區可以容納從資料檔案中讀取的單個資料塊。快取記憶體的大小有限,因此並非磁碟上的所有資料都可以裝入快取記憶體。

注:緩衝區快取記憶體的值越大資料庫可以快取的資料越多,資料庫執行的速度越快,在記憶體允許的範圍內,增大緩衝區快取記憶體會提高資料庫的效能。

Db_BUFFER= DB_BLOCK_SIZE * DB_BLOCK_BUFFER

日誌緩衝區:“日誌緩衝區”指定將重做條目快取到重做日誌檔案時佔用的記憶體量。重做日誌條目包含對資料庫塊緩衝區所作更改的記錄。一般來講,如果“日誌緩衝區”的值較大,就會減少重做日誌檔案 I/O。在事務處理時間長或數量多的時候,尤其如此。該值被指定為初始化檔案引數 LOG_BUFFER

注:由於日誌緩衝區的工作原理限定,日誌緩衝區的大小不應該過大,過大的日誌緩衝區只是對記憶體的浪費,建議大小1m~3m

大儲存池:“大儲存池”用於指定大儲存池的分配堆的大小。多執行緒伺服器將大儲存池的分配堆用作會話記憶體,並行執行將它用作訊息緩衝區,備份將它用作磁碟 I/O 緩衝區。該值被指定為初始化檔案引數 LARGE_POOL_SIZE

注:在共享伺服器的模式下,uga是儲存在大儲存池中的,應適當的增大大儲存池的大小;在專有伺服器的模式下,大儲存池的作用有限,不應該過大。

Java 池:“Java 池”指定 Java 池的大小。該值被指定為初始化檔案引數 JAVA_POOL_SIZE

注:在有java應用的資料庫中應該適當的增加java池的大小;在沒有java應用下的資料庫中,java池的大小在30m左右就可以了。

SGA 總容量:SGA 總容量是在該頁中顯示的各 SGA 元件和 SGA固定容量的總和。SGA 的固定容量是分配給 SGA 區域的記憶體,包含有關資料庫和例程狀態的一般資訊。

系統中最大的session的數量

資料庫中可以允許的最大session數量是有初始化引數中的sessionsprocesses來決定的。

公式如下:

max sessions=min(processes*1.1+5), sessions

資料庫初始化引數processes最大值由作業系統可以執行的最大程式及作業系統的一些核心引數有關,而與pga的大小無關,pga的大小是自動擴充套件的,無法在初始化引數中給出限定(在9i中可以透過初始化引數pga_aggregate_target來指定所有session一共可以使用的最大pga的上限)

可以透過手工修改sort-area-sizehash-area-size等值來控制pga的使用率,這兩個值過小會影響排序的效率,過大會造成記憶體的浪費。

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

相關文章