介紹shared pool物理結構的heap 堆,extent 區,chunk 內存中:共享池、大池、PGA是heap管理 chunk shared pool物理層面上由許多內存塊組成,這些內在塊稱為chunk,chunk是shared pool中內存分配最小單位-類似extent,但是chunk是大小不一的,在內存中一個chunk
介紹shared pool物理結構的heap 堆,extent 區,chunk

內存中:共享池、大池、PGA是heap管理
chunk
shared pool物理層面上由許多內存塊組成,這些內在塊稱為chunk,chunk是shared pool中內存分配最小單位-類似extent,但是chunk是大小不一的,在內存中一個chunk是連續的。
chunk屬于可用類型的時候,既不屬于library cache,也不屬于dictionary cache,
如果chunk被用于存放SQL相關的數據時,則該chunk就屬于library cache;
如果該chunk被用于存放數據字典的信息時,則該chunk就是屬于dictionary
Chunk可以分為4類-或者叫4種狀態:
1.free:chunk中沒有有效的對象,可以不受限制的分配
2.recr:recreatable,--可重用的,chunk里面包含的對象可以被臨時性的移 走,如果需要,可以重建,例如共享SQL語句
3.freeabl:--可釋放的,session用過這個chunk,里面存放的對象數據是session 在處理過程中產生的,沒有辦法重建,這點不同于recr。因此這個chunk不能被臨時性的移走。但是在合適的時間段可以被釋放。
4.perm:permanent,--永久的SGA的固定對象等,chunk中包含永久性的對象,但是大型的permanent類型的chunk中可能包含可用空間,需要的時候,這些空間可以被釋放。
查看Chunk的4種狀態:--R-freea這種R開頭的是在Reserved Area(保留區)中的chunk
SYS@ bys3>select distinct(ksmchcls) from x$ksmsp;
KSMCHCLS
--------
freeabl
recr
perm
R-freea
R-free
R-perm
free
R-recr
查詢各種狀態chunk的大小,chunk的平均大小
SYS@ bys3>select KSMCHCLS,count(*) ,round(sum( KSMCHSIZ/1024/1024),0) MB,round(avg(KSMCHSIZ),0) from x$ksmsp group by KSMCHCLS order by 1;
KSMCHCLS COUNT(*) MB ROUND(AVG(KSMCHSIZ),0)
-------- ---------- ---------- ----------------------
R-free 43 6 152374
R-freea 98 0 3915
R-perm 4 16 4111578
R-recr 1 4 3977200
free 1937 0 226
freeabl 5815 11 2057
perm 271 89 343653
recr 11127 13 1250
SYS@ bys3>desc x$ksmsp
Name
------------
ADDR --在內存中地址
INDX --
INST_ID --
KSMCHIDX --
KSMCHDUR --
KSMCHCOM --chunk描述
KSMCHPTR --
KSMCHSIZ --chunk大小
KSMCHCLS --
KSMCHTYP --
KSMCHPAR --
SYS@ bys3>select count(*) from x$ksmsp; --每個chunk在x$ksmsp中都有記錄,可以統計出chunk數量
COUNT(*)
----------
18704
###################
共享池中的 heap 堆和extent 區
heap 堆由一個或多個大小不一的extent組成,extent由chunk組成
DUMP 共享池查看heap/extent/chunk結構:--用新建會話來做
alter session set events 'immediate trace name heapdump level 2';
select value from v$diag_info where name like 'De%';
/u01/diag/rdbms/bys3/bys3/trace/bys3_ora_7876.trc
查看TRACE文件內容: --找這一段的方法:VI搜索HEAP DUMP
******************************************************
HEAP DUMP heap name="sga heap" desc=0x200010b4
extent sz=0x7ad4 alt=124 het=32767 rec=9 flg=-126 opc=0
parent=(nil) owner=(nil) nex=(nil) xsz=0x0 heap=(nil)
fl2=0x60, nex=(nil)
ds for latch 1: 0x20030f24
reserved granule count 0 (granule size 4194304)
******************************************************
HEAP DUMP heap name="sga heap(1,0)" desc=0x20030f24
---heap name="sga heap(1,0)" 共享池中第1個子池 --高級堆的子緩沖區
extent sz=0xfc4 alt=124 het=32767 rec=9 flg=-126 opc=0
parent=(nil) owner=(nil) nex=(nil) xsz=0x400000 heap=(nil)
fl2=0x20, nex=(nil), dsxvers=1, dsxflg=0x0
dsx first ext=0x2c400000
latch set 1 of 1
durations disabled for this heap
reserved granules for root 0 (granule size 4194304)
EXTENT 0 addr=0x23c00000 ---EXTENT 0,向下搜索還有多個EXTENT的,一個EXTENT有多個Chunk
Chunk 23c00038 sz= 24 R-stopper "reserved stoppe"
Chunk 23c00050 sz= 14300 R-free " "
Chunk 23c0382c sz= 8224 R-freeable "KKSSP^38 " ds=0x23d8f480
Chunk 23c0a8e4 sz= 169732 R-free " "
Chunk 23c33fe8 sz= 24 R-stopper "reserved stoppe"
Chunk 23c34000 sz= 15776 perm "perm " alo=15776
Chunk 23c37da0 sz= 84 free " " -- free狀態的CHUNK,23c37da0 內存地址,84字節,可以看到各chunk大小不一
Chunk 23c37df4 sz= 236 recreate "KGLHD " latch=(nil) ---recreate狀態的CHUNK, latch=(nil) 沒有latch
#####
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com