oracle硬解析过多,ORACLE未绑定变量和硬解析过多问题处理

可以增加共享池大小,

如果从根本解决问题,还需要增加硬件资源。升级oracle版本,优化应用部署等才能根本解决。另外:

1、查询分配情况

SELECT 'shared pool (' || NVL (DECODE (TO_CHAR (ksmdsidx), '0', '0 - Unused', ksmdsidx),'Total') || '):' subpool,

SUM (ksmsslen) BYTES, ROUND (SUM (ksmsslen) / 1048576, 2) mb

FROM x$ksmss WHERE ksmsslen > 0

GROUP BY ROLLUP (ksmdsidx) ORDER BY subpool ASC;

2、 查询一下各个子池的剩余内存

SELECT subpool, NAME, SUM (BYTES), ROUND (SUM (BYTES) / 1048576, 2) mb

FROM (SELECT 'shared pool (' || DECODE (TO_CHAR (ksmdsidx), '0', '0 - Unused', ksmdsidx)

|| '):' subpool, ksmssnam NAME, ksmsslen BYTES

FROM x$ksmss WHERE ksmsslen > 0 AND LOWER (ksmssnam) LIKE LOWER ('%free memory%'))

GROUP BY subpool, NAME ORDER BY subpool ASC, SUM (BYTES) DESC

/

3、通过以下查询可以详细列举不同子池的Free内存块情况

SQL> SELECT ksmchidx "SubPool", 'sga heap(' || ksmchidx || ',0)' sga_heap,

2 ksmchcom chunkcomment,

3 DECODE (ROUND (ksmchsiz / 1000),

4 0, '0-1K', 1, '1-2K',2, '2-3K',3, '3-4K',4, '4-5K', 5, '5-6k',

5 6, '6-7k', 7, '7-8k',8, '8-9k',9, '9-10k', '> 10K'

6 ) "size",

7 COUNT (*), ksmchcls status, SUM (ksmchsiz) BYTES

8 FROM x$ksmsp WHERE ksmchcom = 'free memory'

9 GROUP BY ksmchidx, ksmchcls, 'sga heap(' || ksmchidx || ',0)',ksmchcom, ksmchcls,

10 DECODE (ROUND (ksmchsiz / 1000),

11 0, '0-1K', 1, '1-2K',2, '2-3K',3, '3-4K',4, '4-5K', 5, '5-6k',

12 6, '6-7k', 7, '7-8k',8, '8-9k',9, '9-10k', '> 10K' );

如果发现大的内存请求在剩余》10k中很小的话 ,就有可能报4031错误

show parameter cursor

SQL> select a.*,b.name

from v$sesstat a , v$statname b

where a.statistic#=b.statistic#

and a.sid=(select distinct sid from v$mystat)

and b.name like '%parse%'

SELECT substr(sql_text,1,40) "SQLTXT",

count(*) ,

sum(executions) "TotExecs"

FROM v$sqlarea

WHERE executions < 5

GROUP BY substr(sql_text,1,40)

HAVING count(*) > 30

ORDER BY 2 DESC

新方法:

SELECT FORCE_MATCHING_SIGNATURE,COUNT(*)

FROM V$SQL

GROUP BY FORCE_MATCHING_SIGNATURE

ORDER BY 2 DESC

SQL> select '硬解析' SQL解析类型,

2  ((SELECT value from v$sysstat where name like 'parse count (hard)')/(SELECT value from v$sysstat where name lik

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值