深入探討ORA-04031的產生原因及解決方法
1. 沒有繫結編量造成shared_pool碎片過多,同時shared_pool_size太小
(1)這個情況是比較常見的。
(2)第二種情況通常會建議使用繫結變數,或者用簡單的加大shared_pool,臨時的解決方法就是alter system flush shared_pool。
2. Large_pool,Java_pool太小造成的
(1)這個透過錯誤資訊的提示很容易判斷(Ora-04031 cannot allocate .. memeory in [large_pool])
(2)解決方法就是簡單的加大 Large_pool or Java_pool
3. 過度的開CURSOR而不關閉。
目前,此問題發生的越來越多,特別是在JAVA的執行環境中,屢見不鮮。加大Shared_pool或者flush shared_pool往往只能延遲問題出現的時間,而無法避免此問題。
判斷方法:
select count(*) from v$open_cursor ;
select * from v$sysstat
where name = 'opened cursors current';
假如出來的值特大(以萬為單位)時,基本就可以確定是這個原因了。
解決這個問題的方法就是檢查程式,看是否沒有正常的關閉cursor(對於JAVA來說,就是沒有關閉Statement)。或者select sql_text from v$open_cursor,看看都是哪些cursor沒關閉,再去檢查車程式。
也有的程式使用了保持一定量的cursor一直open,從而避免cursor過多次的開啟,來提高效能。對於這種情況,則應該選擇適當的shared_pool_size和控制keep_opening的cursor的量。
另外,Oracle引數session_cached_cursors也有可能過大,解決的方法就是把它降低到適當的值。
連結:
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23650854/viewspace-688224/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- impdp操作產生大量UNDO的原因及解決方法
- Linux中產生zombie的原因詳解及解決方法!Linux
- ORA-04031 的原因分析解決方法
- vi/vim配置篇:亂碼產生的原因及解決
- cursor: pin S產生原理及解決方法
- ANR原因及解決方法
- Windows、Linux下檔案操作(寫、刪除)錯誤的產生原因、及解決方法WindowsLinux
- ORA-00214 錯誤產生原因與解決方法
- 深入探討 UndefinedUndefined
- IsPostBack深入探討
- ORA-02020產生的原因及解決辦法
- 探討寶塔切換php版本切換失敗的原因和解決方法PHP
- Oracle Stream 深入探討Oracle
- Elasticsearch 線上實戰問題及解決方案探討Elasticsearch
- RNN神經網路產生梯度消失和梯度爆炸的原因及解決方案RNN神經網路梯度
- 深入探討、理解Java的CLASSPATHJava
- 深度學習中“過擬合”的產生原因和解決方法深度學習
- 生產內網ssh登陸變慢問題原因及解決辦法內網
- 深入探討單例模式單例模式
- 索引壓縮在實際生產中應用的探討索引
- Redis擊穿、穿透、雪崩產生原因以及解決思路Redis穿透
- DVR常見故障原因及解決方法VR
- Java執行緒的深入探討Java執行緒
- No input file specified 出現的原因及解決方法
- 深入探討 Chrome iOS 版測試及釋出流程ChromeiOS
- 探討基於資訊系統的專案型生產管理
- Windows變慢原因分析及解決方法(轉)Windows
- 深入探討ROP 載荷分析
- 深入探討JavaScript函式物件JavaScript函式物件
- Java HashMap工作原理深入探討JavaHashMap
- 瞭解下Mysql的間隙鎖及產生的原因MySql
- 網站內頁不收錄的原因及解決方法網站
- DNS故障的幾種常見原因及解決方法DNS
- 深入探討 Room 2.4.0 的最新進展OOM
- Sql Server深入的探討鎖機制SQLServer
- Java執行緒的深入探討 (轉)Java執行緒
- 容器安全公開課 | 揭秘容器黑產,探討容器安全解決方案
- ORA-00060死鎖的產生及解決