使用ASMM的情況下04031問題很少,但有些應用不合理也會導致內存耗盡.
1.沒有使用綁定變量,導致解析資源占用太多
2.打開過多的cursor不釋放
3.bug
第一種.
使用綁定變量
使用cursor_sharing參數
第二種.
查找哪個會話打開的游標比較多
SQL> select sid,count(*) from v$open_cursor group by sid order by 2 desc;-
SID COUNT(*)
----------- ----------
148 39
157 25
149 22
147 19
161 16
154 15
162 7
156 7
152 2
150 2
151 1
11 rows selected.
Elapsed: 00:00:00.01
SQL> select SID,USER_NAME,sql_text from v$open_cursor where sid in (148,157);
找出打開游標多的SID執行的什么SQL,再根據業務判斷代碼位置.去修改代碼
第三種
打補丁
本文出自:億恩科技【www.vbseamall.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|