link:
http://www.eygle.com/internal/shared_pool-2.htm
我们继续把前面的问题展开一下.
其实我们可以从数据库内部监控shared pool的空间碎片情况.
这涉及到一个内部视图x$ksmsp
X$KSMSP的名称含义为: [K]ernal [S]torage [M]emory Management [S]GA Hea[P]
其中每一行都代表着shared pool中的一个chunk
关于shared pool的深入探讨(二) Sunday, 2004-08-22 21:23 Eygle | ||||||
我们继续把前面的问题展开一下.
其实我们可以从数据库内部监控shared pool的空间碎片情况. X$KSMSP的名称含义为: [K]ernal [S]torage [M]emory Management [S]GA Hea[P] 首先记录一下测试环境:
我们看一下x$ksmsp的结构:
我们关注以下几个字段: KSMCHCOM是注释字段,每个内存块被分配以后,注释会添加在该字段中. x$ksmsp.ksmchcls列代表类型,主要有四类,说明如下: free recr freeabl perm 我们可以通过查询x$ksmsp视图来考察shared pool中存在的内存片的数量 我们看一下测试:
这就是由于shared pool中进行sql解析,请求空间,进而导致请求free空间,分配、分割 由此我们可以看出,如果数据库系统中存在大量的硬解析,不停请求分配free的shred pool内存 我们看以下测试:
我们简单分析一下以上结果: 在下面的部分中,我会着手介绍一下KGL handles, KGLS heap这两个非常重要的shared pool中的内存结构. |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/764/viewspace-120479/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/764/viewspace-120479/