WEB开发网
开发学院数据库Oracle oracle性能调整 Shared pool深入分析及性能调整 阅读

oracle性能调整 Shared pool深入分析及性能调整

 2007-09-11 12:39:02 来源:WEB开发网   
核心提示: 2.shared pool的内存结构从一个逻辑层面来看,shared pool由library cache和dictionary cache组成,oracle性能调整 Shared pool深入分析及性能调整(3),shared pool中组件之间的关系可以用下图一来表示,从下面这个图中

2.shared pool的内存结构

从一个逻辑层面来看,shared pool由library cache和dictionary cache组成。shared pool中组件之间的关系可以用下图一来表示。从下面这个图中可以看到,当SQL语句(select object_id,object_name from sharedpool_test)进入library cache时,oracle会到dictionary cache中去找与sharedpool_test表有关的数据

oracle性能调整  Shared pool深入分析及性能调整

图一

字典信息,比如表名、表的列等,以及用户权限等信息。如果发现dictionary cache中没有这些信息,则会将system表空间里的数据字典信息调入buffer cache内存,读取内存数据块里的数据字典内容,然后将这些读取出来的数据字典内容按照行的形式放入dictionary cache里,从而构造出dc_tables之类的对象。然后,再从dictionary cache中的行数据中取出有关的列信息放入library cache中。

从一个物理的层面来看,shared pool是由许多内存块组成,这些内存块通常称为chunk.Chunk是shared pool中内存分配的最小单位,一个chunk中的所有内存都是连续的。这些chunk可以分为四类,这四类可以从x$ksmsp(该视图中的每个行都表示shared pool里的一个chunk)的ksmchcls字段看到:

1) free:这种类型的chunk不包含有效的对象,可以不受限制的被分配。

2) recr:意味着recreatable,这种类型的chunks里包含的对象可以在需要的时候被临时移走,并且在需要的时候重新创建。比如对于很多有关共享SQL语句的chunks就是recreatable的。

3) freeabl:这种类型的chunks包含的对象都是曾经被session使用过的,并且随后会被完全或部分释放的。这种类型的chunks不能临时从内存移走,因为它们是在处理过程中间产生的,如果移走的话就无法被重建。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:oracle 性能 调整

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接