latch free等待

案例:2011/10/26 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production+Red Hat Enterprise Linux AS release 4 (Nahant Update 5)

產線反映掃描緩慢:

top:發現負載達到10,cpu :60%(us)

查看v$session_wait很多latch free等待

可以看下這個:
select sid,event,p1 as file_id, p2 as "block_id/latch", p3 as blocks,l.name
from v$session_wait sw,v$latch l
where event not like '%SQL%' and event not like '%rdbms%'
and event not like '%mon%' and sw.p2 = l.latch#( +);
慢的時候基本上都是latch free( library cache )

 

硬解析問題消耗CPU:
select name,value from v$sysstat where name like 'parse%';
parse count hard占parse count total的13%

為避免硬解析強制綁定變量:cursor_sharing=force,不需要重啟DB就能生效。

設置后,過一段觀察vmstat,CPU可用率從50%達到75%,但不久開發人員反映一些通過ADO控件連接DB的group by SQL無法執行,報ORA-00979,ORA-00939。為了使程序的正常運行寫了一個Trigger:

CREATE OR REPLACE TRIGGER SYS.CURSOR_SHARING AFTER LOGON ON DATABASE
DECLARE
UIP   VARCHAR2(300);
PRGRM  VARCHAR2(60);
CUSER VARCHAR2(60);
MO      VARCHAR2(60);
BEGIN
    --SELECT SYS_CONTEXT('USERENV','IP_ADDRESS'),USERNAME,PROGRAM,MODULE INTO UIP,CUSER,PRGRM,MO FROM V$SESSION WHERE AUDSID=USERENV('sessionid') and rownum=1;
    --If UIP='10.161.32.110' THEN
    --IF INSTR(UPPER(PRGRM),'TOAD.EXE')>0 THEN
    IF SYS_CONTEXT('USERENV','TERMINAL') IN ('IMB-XP002') THEN
        EXECUTE IMMEDIATE 'ALTER SESSION SET CURSOR_SHARING=EXACT';
    END IF;
END;

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

转载于:http://blog.itpub.net/25583515/viewspace-711554/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值