X$KSMSP:kernal Storage Memory Sga HeaP
SQL> desc x$ksmsp;
Name Null? Type
----------------------------------------- -------- ----------------------------
ADDR RAW(4)
INDX NUMBER
INST_ID NUMBER
KSMCHIDX NUMBER
KSMCHDUR NUMBER
KSMCHCOM VARCHAR2(16)
KSMCHPTR RAW(4)
KSMCHSIZ NUMBER
KSMCHCLS VARCHAR2(8)
KSMCHTYP NUMBER
KSMCHPAR RAW(4)
每一行代表shared pool 中的一个chunk
KSMCHSIZ ksmsp chunk size 表示每个chunk的大小 16---3981312
KSMCHCLS ksmsp chunk class 表示类型,主要有4类:
free : free chunks 表示可以自由分配
recr : recreatable chunks 可以被重新创建的chunks
freeable : 可以被释放的chunks
perm : 永久包含的对象
SQL> select count(*) from x$ksmsp; ----查询shared pool 中一共有多少个chunk,这里看到有20068个chunk
COUNT(*)
----------
20068
不停的对SQL硬解析,会持续的请求free的chunk ,导致shared pool 产生更多的内存碎片,同时也会产生 shared pool latch竞争