oracle课后体会,今日学习Oracle心得体会

/*************breakable parse locks易碎的解析锁*******************/

1,parse lock由模式对象引用的

sql或plsql语句或代码块持有

2,持有此锁的目的,如果sql或plsql引用的对象被drop or alter,以便相关的shared sql area变更为invalidate无效

(也就是说只有有了这个锁,共享池中shared sql area的sql or plsql一旦引用对象变化了,其share sql area才可以变为无效)

3,此锁不允许任何ddl操作

4,此锁产生于share pool共享池

5,解析sql会获取此锁(解析sql要查看sql所引用对象是否发生过变化,从而决定shared pool中的share sql area是否有否,否则变更为无效;这个期间要获取此锁)

6,只要针对sql的share sql area在共享池,就要持此锁,注意是针对sql的share sql area,二者不一回事

v$librarycache视图

scott@ORCL > desc v$librarycache;

Name                          Null?    Type

----------------------------- ----------------------

NAMESPACE                              VARCHAR2(15)  --存储在库缓存中的对象类型,值为SQLarea,table/procedure,body,trigger

GETS                                   NUMBER   --显示请求库缓存中的条目的次数(或语句句柄数)

GETHITS                                NUMBER   --显示被请求的条目存在于缓存中的次数(获得的句柄数)

GETHITRATIO                            NUMBER   --前两者之比

PINS                                   NUMBER   --位于execution阶段,显示库缓存中条目被执行的次数

PINHITS                                NUMBER   --位于execution阶段,显示条目已经在库缓存中之后被执行的次数

PINHITRATIO                            NUMBER   --前两者之比

RELOADS                                NUMBER   --显示条目因过时或无效时在库缓存中被重载的次数

INVALIDATIONS                          NUMBER   --由于对象被修改导致所有参照该对象的执行计划无效的次数,需要被再次解析

DLM_LOCK_REQUESTS                      NUMBER

DLM_PIN_REQUESTS                       NUMBER

DLM_PIN_RELEASES                       NUMBER

DLM_INVALIDATION_REQUESTS              NUMBER

DLM_INVALIDATIONS                      NUMBER

get表示请求条目或对象、获得对象句柄;

pin根据句柄找到实际对象并执行,但对象内容可能因为老化而pin不到所以出现reload;

一个session需要使用一个object时,如果是初次使用,则必然是先get然后pin并维护这个object的句柄。下次再使用这个object时,因为

已经维护该句柄,所以直接pin而没有了get过程。如果对象老化则移除共享池,再次请求则会出现reload。  www.2cto.com

由上面所列出的字段可知,v$librarycache视图可以用来监控librarycache的活动情况。

重点关注字段

RELOADS列:表示对象被重新加载的次数,理论上该值应该接近于零。过大是由于对象无效或librarypool过小被换出。

INVALIDATIONS:列表示对象失效的次数,对象失效后,需要被再次解析。

GETHITRATIO:该列值过低,表明过多的对象被换出内存。

GETPINRATIO:该列值过低,表明会话没有多次执行相同的游标,即使对象被不同的会话共享或会话没有找到共享的游标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值