天天看點

x$ KSMSP視圖(引用)

原文轉自:http://www.eygle.com/archives/2005/01/oracleaexiieaee_1.html

引用位址:http://blog.csdn.net/changyanmanman/article/details/7482763           http://blog.csdn.net/changyanmanman/article/details/7611758

1、X$KSMSP的名稱含義

[K]ernal  [S]torage  [M]emory  Management   [S]GA   Hea[P]

其中每一行都代表着shared pool中的一個chunk

我們看一下x$ksmsp的結構:

我們關注以下幾個字段:

KSMCHCOM 是注釋字段,每個記憶體塊被配置設定以後,注釋會添加在該字段中.

x$ksmsp.ksmchsiz代表塊大小

x$ksmsp.ksmchcls列代表類型,主要有四類,說明如下:

free

Free chunks--不包含任何對象的chunk,可以不受限制的被配置設定.

recr

Recreatable chunks--包含可以被臨時移出記憶體的對象,在需要的時候,這個對象可以

被重新建立.例如,許多存儲共享sql代碼的記憶體都是可以重建的.

freeabl

Freeable chunks--包含session周期或調用的對象,随後可以被釋放.這部分記憶體有時候

可以全部或部分提前釋放.但是注意,由于某些對象是中間過程産生的,這些對象不能

臨時被移出記憶體(因為不可重建).

perm

Permanent memory chunks--包含永久對象.通常不能獨立釋放.

我們可以通過查詢x$ksmsp視圖來考察shared pool中存在的記憶體片的數量

不過注意:Oracle的某些版本(如:10.1.0.2)在某些平台上(如:HP-UX PA-RISC 64-bit)查

詢該視圖可能導緻過度的CPU耗用,這是由于bug引起的.

在x$ksmsp.ksmchcls的分類中,還有兩外幾個分類,這幾個分類是R-free/R-freea/R-perm:

Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production With the Partitioning option JServer Release 9.2.0.4.0 - Production
SQL> select count(*) from x$ksmsp;   COUNT(*) ----------      37138
可以知道shared pool裡面有chuck數量是:37138
SQL> select KSMCHCLS,sum(KSMCHSIZ) from x$ksmsp  group by ksmchcls; 

各個版本都不一樣,我在10g r1中查詢結果如下:

SQL> select KSMCHCLS,sum(KSMCHSIZ) FROM x$ksmsp group by ksmchcls;

已選擇6行。

沒有R-perm 類型的。

在10g r2中的結果如下:

7 rows selected.

這裡的R指的是reserved,也就是說這些Heap的資訊是和shared_pool_reserved_size相關的。

至于free/freeable/perm就無需解釋了。

2、V$SHARED_POOL_RESERVED

shared_pool_reserved_size的另外一個視圖展現是V$SHARED_POOL_RESERVED.

我們可以從這個視圖中獲得關于shared pool reserverd的資訊:

SQL> desc v$shared_pool_reserved

查詢總共有幾條記錄:

SQL> select count(*) from v$shared_pool_reserved ;

         1

SQL> select *from v$shared_pool_reserved;

關于這些資訊的另外一個來源是X$KSMSPR内部表:

SQL> select   ksmchcom,ksmchcls,sum(ksmchsiz)     from x$ksmspr group by ksmchcom,ksmchcls;

這部分資訊和x$ksmsp視圖記錄的Reserved資訊是完全一緻的:

SQL> select KSMCHCOM,KSMCHCLS,sum(KSMCHSIZ)   from x$ksmsp where KSMCHCLS like 'R%' group by ksmchcom,ksmchcls;

-The End-