查询v$librarycache,看看是否重用 SQL

推荐的固定对象的命中率是95%以上,重载命中率应为
99%以上(低于1%的重载次数)。如果语句先前已经经过分析,但共享池通常不够大,在分析其他的语句时
无法在内存中保存这个语句,则在此时会出现重载。语句的主体被挤出内存(语句头仍然保存下来);当需
要再次使用该语句时,就将重载记录下来,并将语句主体再次加载到内存中。这种情况也会出现在语句的
执行计划发生变动时。如果有任何一个命中率低于这些百分比,就说明应该更仔细地分析共享池的分布情
况。下面的程序清单显示了如何查询上面讨论的所有信息。
查询v$librarycache,看看是否重用 SQL :
select sum(pins) "Executions", sum(pinhits) "Hits",
((sum(pinhits) / sum(pins)) * 100) "PinHitRatio",
sum(reloads) "Misses", ((sum(pins) / (sum(pins)
+ sum(reloads))) * 100) "RelHitRatio"
from v$librarycache;
Executions Hits PinHitRatio Misses RelHitRatio
---------- ---------- ----------- ---------- -----------
7002504 6996247 99.9106462 327 99.9953305
查询 v$sql_bind_capture,看看 average binds 是否大于15 (issue):
select sql_id, count(*) bind_count
from v$sql_bind_capture
where child_number = 0
group by sql_id
having count(*) > 20
order by count(*);
SQL_ID BIND_COUNT
------------- ----------
9qgtwh66xg6nz 21
查找有问题的SQL 并修复它:
select sql_text, users_executing, executions, users_opening, buffer_gets
from v$sqlarea
where sql_id = '9qgtwh66xg6nz'
order by buffer_gets;
SQL_TEXT
------------------------------------------------------------------------
USERS_EXECUTING EXECUTIONS USERS_OPENING BUFFER_GETS
--------------- ---------- ------------- -----------
update seg$ set type#=:4,blocks=:5,extents=:6,minexts=:7, maxexts=:8, extsize
=:9,e
xtpct=:10,user#=:11,iniexts=:12,lists=decode(:13, 65535, NULL, :13),groups=
decod
e(:14, 65535, NULL, :14), cachehint=:15, hwmincr=:16, spare1=DECODE(:17,0,
NULL,:
17),scanhint=:18 where ts#=:1 and file#=:2 and block#=:3
0 90 0 690

查询 v$sql_bind_capture,看看 average binds 是否大于15 (issue):
select avg(bind_count) AVG_NUM_BINDS from
(select sql_id, count(*) bind_count
from v$sql_bind_capture
where child_number = 0
group by sql_id);
AVG_NUM_BINDS
-------------
3.35471698
技巧:
查询V$LIBRARYCACHE 视图可以知道从内存中访问SQL 和PL/SQL 的频率的信息。固定命
中率通常应该是95%或更高,而重载的次数不应该超过1%。查询V$SQL_BIND_CAPTURE 视
图,看看每个SQL 绑定是否太高,是否需要CURSOR_SHARING。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25198367/viewspace-707562/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25198367/viewspace-707562/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值