Oracle SGA中的Granule(粒度)
我們都知道從Oracle9i開始,Oracle引入了一個新的initial parameter->db_cache_size,這個引數代表了standard db_block_size的Default pool的大小.那麼這樣一來的引入替代了先前的db_block_buffers*db_block_size=buffer cache size的設定方法.
db_cache_size的最小值就是一個Granule,這個也是Oracle 9i引入的一個新概念.是連續虛擬記憶體分配的單位,這個Granule分配的大小取決於SGA的總大小(SGA_MAX_SIZE).
如果估計的SGA的大小小於128MB,那麼Granule為4M,否則 > 4M
if [$SGA_MAX_SIZE < 128MB]
then
Granule=4M
elseif
Granule >4M
end if
觀察這個值,我們可以通過一個隱藏引數_ksmg_granule_size來控制
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE 9.2.0.8.0 Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production
SQL> select
2 x.ksppinm name,
3 y.ksppstvl value,
4 y.ksppstdf isdefault,
5 decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
6 decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
7 sys.x$ksppi x,
8 sys.x$ksppcv y
9 where
10 x.inst_id=userenv('Instance') and
11 y.inst_id=userenv('Instance') and
12 x.indx=y.indx and
13 x.ksppinm like '%_&par%'
14 order by
15 translate(x.ksppinm,'_','');
輸入 par 的值: ksmg_granule
原值 13: x.ksppinm like '%_&par%'
新值 13: x.ksppinm like '%_ksmg_granule%'
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
_ksmg_granule_size
4194304
TRUE FALSE FALSE
_ksmg_granule_locking_status
1
TRUE FALSE FALSE
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
SQL> show parameter sga_max_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 135339604
SQL> alter system set sga_max_size=200M scope=spfile;
系統已更改。
SQL> startup force
ORACLE 例程已經啟動。
Total System Global Area 210836936 bytes
Fixed Size 454088 bytes
Variable Size 184549376 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
SQL> select
2 x.ksppinm name,
3 y.ksppstvl value,
4 y.ksppstdf isdefault,
5 decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
6 decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
7 sys.x$ksppi x,
8 sys.x$ksppcv y
9 where
10 x.inst_id=userenv('Instance') and
11 y.inst_id=userenv('Instance') and
12 x.indx=y.indx and
13 x.ksppinm like '%_&par%'
14 order by
15 translate(x.ksppinm,'_','');
輸入 par 的值: ksmg_granule
原值 13: x.ksppinm like '%_&par%'
新值 13: x.ksppinm like '%_ksmg_granule%'
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
_ksmg_granule_size
8388608
TRUE FALSE FALSE
_ksmg_granule_locking_status
1
TRUE FALSE FALSE
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
SQL> show parameter sga_max_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 210836936
SQL> alter system set sga_max_size=500M scope=spfile;
系統已更改。
SQL> startup force;
ORACLE 例程已經啟動。
Total System Global Area 529604804 bytes
Fixed Size 454852 bytes
Variable Size 503316480 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select
2 x.ksppinm name,
3 y.ksppstvl value,
4 y.ksppstdf isdefault,
5 decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
6 decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj from
7 sys.x$ksppi x,
8 sys.x$ksppcv y
9 where
10 x.inst_id=userenv('Instance') and
11 y.inst_id=userenv('Instance') and
12 x.indx=y.indx and
13 x.ksppinm like '%_&par%'
14 order by
15 translate(x.ksppinm,'_','');
輸入 par 的值: ksmg_granule
原值 13: x.ksppinm like '%_&par%'
新值 13: x.ksppinm like '%_ksmg_granule%'
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
_ksmg_granule_size
8388608
TRUE FALSE FALSE
_ksmg_granule_locking_status
1
TRUE FALSE FALSE
NAME
----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD ISADJ
--------- ---------- -----
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12361284/viewspace-114455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ordebug 手動修改Oracle sga scnOracle
- oracle審計-細粒度(轉)Oracle
- oracle 細粒度審計(fga)Oracle
- Oracle OCP(52):細粒度審計Oracle
- oracle12c之 控制pdb中sga 與 pga 記憶體使用Oracle記憶體
- Oracle Rac 修改SGA_TARGET值無變化Oracle
- 一次Oracle診斷案例-SGA與SwapOracle
- Oracle Exadata與SGA快取記憶體CQOracle快取記憶體
- oracle SGA區基礎知識與檢視命令Oracle
- Oracle記憶體結構(一)----SGA的區域資訊(轉)Oracle記憶體
- 【ASK_ORACLE】LOCK_SGA引數失效的解決辦法Oracle
- Oracle多粒度封鎖機制研究二(zt)Oracle
- 關於32位oracle擴充套件SGA的一些問題Oracle套件
- LOCK_SGA(zt)
- 漫畫:SOA中怎樣確定服務的粒度?
- 細粒度情感分析在到餐場景中的應用
- [20210423]dump sga映像的對應塊.txt
- [20210723]Minimum sga_target.txt
- SGA: allocation forcing component growth分析
- ORACLE RAC 11.2.0.4 ASM加盤導致叢集重啟之ASM sga設定過小OracleASM
- 發現 Controller 的顆粒度不能太大Controller
- 細粒度影象分類
- [20191211]Free SGA Memory Available.txtAI
- Java 中常見的細粒度鎖實現Java
- oracle 中的事務Oracle
- Oracle 中的exception——(Raise)OracleExceptionAI
- Oracle中的sql hintOracleSQL
- Java 細粒度鎖續篇Java
- 研究生雜談-1粗粒度(Coarse-grained)VS細粒度(fine-grained)AI
- Oracle中的B樹索引Oracle索引
- oracle樹中prior的用法Oracle
- 11、Oracle中的檢視Oracle
- 關於oracle中的undoOracle
- WINDOWS平臺上擴充套件SGA (zt)Windows套件
- statistics_level與SGA_TARGET衝突
- 一次SGA與Swap故障診斷
- [20210421]如何使用dumpsga轉儲sga.txt
- Golang 自制簡易細粒度鎖Golang
- canal mysql select許可權粒度MySql