国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

深入探討ORA-04031的產(chǎn)生原因及解決方法

2024-07-21 02:42:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
現(xiàn)象:ORA-04031: unable to allocate 4096 bytes of shared memory

具體原因及解決方法:

ORA-04031出現(xiàn)的問(wèn)題有以下幾個(gè)可能性:

1. 沒(méi)有綁定編量造成shared_pool碎片過(guò)多,同時(shí)shared_pool_size太小

(1)這個(gè)情況是比較常見(jiàn)的。

(2)第二種情況通常會(huì)建議使用綁定變量,或者用簡(jiǎn)單的加大shared_pool,臨時(shí)的解決方法就是alter system flush shared_pool。

2. Large_pool,java_pool太小造成的

(1)這個(gè)通過(guò)錯(cuò)誤信息的提示很容易判斷(Ora-04031 cannot allocate .. memeory in [large_pool])

(2)解決方法就是簡(jiǎn)單的加大 Large_pool or Java_pool

3. 過(guò)度的開(kāi)CURSOR而不關(guān)閉。

目前,此問(wèn)題發(fā)生的越來(lái)越多,特別是在JAVA的運(yùn)行環(huán)境中,屢見(jiàn)不鮮。加大Shared_pool或者flush shared_pool往往只能延遲問(wèn)題出現(xiàn)的時(shí)間,而無(wú)法避免此問(wèn)題。

判斷方法:

select count(*) from v$open_cursor ;select * from v$sysstat where name = 'opened cursors current';

假如出來(lái)的值特大(以萬(wàn)為單位)時(shí),基本就可以確定是這個(gè)原因了。

解決這個(gè)問(wèn)題的方法就是檢查程序,看是否沒(méi)有正常的關(guān)閉cursor(對(duì)于JAVA來(lái)說(shuō),就是沒(méi)有關(guān)閉Statement)。或者select sql_text from v$open_cursor,看看都是哪些cursor沒(méi)關(guān)閉,再去檢查車程序。

也有的程序使用了保持一定量的cursor一直open,從而避免cursor過(guò)多次的開(kāi)啟,來(lái)提高性能。對(duì)于這種情況,則應(yīng)該選擇適當(dāng)?shù)膕hared_pool_size和控制keep_opening的cursor的量。

另外,Oracle參數(shù)session_cached_cursors也有可能過(guò)大,解決的方法就是把它降低到適當(dāng)?shù)闹怠?/P>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 商洛市| 博野县| 阳曲县| 邵东县| 湄潭县| 专栏| 深水埗区| 庐江县| 黄冈市| 惠安县| 五河县| 册亨县| 石河子市| 福建省| 洪湖市| 德保县| 若尔盖县| 甘谷县| 东光县| 肃宁县| 德钦县| 拉孜县| 紫金县| 万山特区| 安宁市| 黑山县| 东乡族自治县| 桂阳县| 鞍山市| 平果县| 长顺县| 和政县| 正镶白旗| 仁怀市| 汉川市| 宜章县| 拜泉县| 香格里拉县| 闸北区| 遂溪县| 元氏县|