ORA-04031

ORA-04031:當分配大塊的連續的內存時不足時出現,很多時候是因為內存碎片過多,而并非內存不足造成。oracle首先會清除shared pool中當前沒有使用的對象,使空間合并,如果仍然沒有足夠大的單塊內存可以滿足需要,就會發生04031

 案例: 2011/10/26 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production

+Red Hat Enterprise Linux AS release 4 (Nahant Update 5)

用戶程序突然ORA-04031:無法分配共享記憶體的4072位元組()

SELECT free_space, avg_free_size,used_space, avg_used_size,request_failures, last_failure_size FROM v$shared_pool_reserved;

FREE_SPACE|AVG_FREE_SIZE|USED_SPACE|AVG_USED_SIZE|REQUEST_FAILURES|LAST_FAILURE_SIZE

155403224|226205.566229985|10824904|15756.7743813683|5170|432

看到有請求失敗,最后一次失敗大小位432<4400_shared_pool_reserved_min_alloc

SELECT * FROM X$KSPPCV A,X$KSPPI B WHERE A.INDX=B.INDX AND B.KSPPINM = '_shared_pool_reserved_min_alloc'

查看數據庫parse count (hard)和parse count (total)的比例:

select name,value from v$sysstat where name like 'parse%';

 我的方法找出多次沒有綁定變量的sql:查前20個字符相同的SQL_TEXT V$SQL

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值