Oracle10g 管理系統(tǒng)全局區(qū)簡介
你對Oracle10g 管理系統(tǒng)全局區(qū)(SGA)的實際應(yīng)用是否了解?對其的一些相關(guān)步驟的運行是否了如指掌?如果你對Oracle10g 管理系統(tǒng)全局區(qū)(SGA)的相關(guān)內(nèi)容感興趣的話,你就可以瀏覽我們的文章。
有幾個影響SGA內(nèi)存分配數(shù)量的參數(shù),除了SGA_MAX_SIZE ,其他都是動態(tài)參數(shù),也就是說在數(shù)據(jù)庫運行期間可以使用ALTER SYSTEM 語句動態(tài)修改的參數(shù).SGA的大小是動態(tài)的,通過修改這些參數(shù)可以是SGA增長或收縮.
SGA組件和SGA內(nèi)存顆粒
由許多內(nèi)存組件組成,他們是用于滿足特定內(nèi)存分配請求的內(nèi)存池.例如共享池(用于緩沖磁盤數(shù)據(jù)塊),所有的SAG以一個最小的內(nèi)存單元顆粒分配和回收內(nèi)存空間,Oracle在系統(tǒng)內(nèi)部追蹤SAG的內(nèi)存單元的分配和使用情況.
SGA的內(nèi)存分配是通過顆粒進行分配的,顆粒大小由SGA的大小決定.一般來將,在大多數(shù)平臺,如果SGA小于等于1G,那么顆粒大小為4MB,如果大于1G,顆粒的大小為16MB,不同的是在32位Windows平臺下,SGA大于1G時,顆粒大小位8MB而非16MB,詳細信息,查看操作系統(tǒng)文檔.
可以通過V$SGAINFO 系統(tǒng)試圖查看由某個實例使用的顆粒大小.同樣的大小用于所有SGA的動態(tài)組件.
如果指定的SGA組件的大小不是顆粒大小的整數(shù)倍,那么Oracle將會四舍五入求整而得到其整數(shù)倍值,賦給SGA內(nèi)存組件.而不是你所指定的大小.例如如果顆粒大小為4MB,你給 DB_CACHE_SIZE 參數(shù)設(shè)定為10MB,那么實際分配的內(nèi)存將會是12MB.
限制SGA的大小
SGA_MAX_SIZE 參數(shù)指定SGA在實例的生命期內(nèi)的***數(shù).動態(tài)修改這些參數(shù)影響的Buffer cache,shared pool,large pool,java pool,和streams pool的大小,和SGA的總大小.但是不能超過SGA_MAX_SIZE 參數(shù)所設(shè)定的值.
如果沒有指定,那么默認把所有初始化參數(shù)中指定的內(nèi)存組件的和作為期缺省值.
使用自動共享內(nèi)存管理
通過使用SGA_TARGET參數(shù)來啟用自動共享內(nèi)存管理.以前手動分配的類似java_pool,large_pool這樣的共享內(nèi)存組件將被自動管理,另外,你必須確保STATISTICS_LEVEL初始化參數(shù)設(shè)置為TYPICAL(默認值)或ALL.
SGA_TARGET初始化參數(shù)反映了SGA的大小.
表2-3 自動分配大小的SGA組件和相應(yīng)的參數(shù)
SGA 組件 初始化參數(shù)
Oracle10g 管理系統(tǒng)全局區(qū)(SGA)在固定的SGA和其他Oracle數(shù)據(jù)庫實例需要的內(nèi)部分配 不可用
共享池 SHARED_POOL_SIZE
大型池 LARGE_POOL_SIZE
Java池 JAVA_POOL_SIZE
緩沖區(qū)高數(shù)緩存 DB_CACHE_SIZE
表2-4 手動分配大小的使用SGA_TARGET空間的SGA組件
SGA 組件 初始化參數(shù)
日志緩沖區(qū) LOG_BUFFER
The keep and recycle buffer caches DB_KEEP_CACHE_SIZE
DB_RECYCLE_CACHE_SIZE
非標準緩沖區(qū)高數(shù)緩存塊大小 DB_nK_CACHE_SIZE
流池 STREAMS_POOL_SIZE
在手動管理模式下執(zhí)行如下SQL查詢得到SGA_TARGET的值.
SELECT (
(SELECT SUM(value) FROM V$SGA) -
(SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)
) "SGA_TARGET"
FROM DUAL;
然后你可以刪除由Oracle自動管理的共享內(nèi)存相應(yīng)的初始化參數(shù).
例如,當前你在手動管理模式下由如下配置,并且SGA_MAX_SIZE 設(shè)置為 1200M:
SHARED_POOL_SIZE = 200M
DB_CACHE_SIZE = 500M
LARGE_POOL_SIZE=200M
以上的相關(guān)內(nèi)容就是對Oracle10g 管理系統(tǒng)全局區(qū)(SGA)的介紹,望你能有所收獲。
【編輯推薦】
- Oracle Copy命令中SQL*Plus的Copy命令操作
- 在Oracle 學(xué)習(xí)中進行數(shù)據(jù)庫查詢
- 在Oracle創(chuàng)建索引的實際操作中會出現(xiàn)的限制條件
- Oracle數(shù)據(jù)庫中怎樣選擇合適索引類型
- 對Oracle10修改機器名后服務(wù)無法啟動的解決