<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rising Sun

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks

    癥狀:系統運行了一段時間報錯:java.sql.SQLException: ORA-01000: 超出打開游標的最大數

    step 1:
        查看數據庫當前的游標數配置slqplus:show parameter open_cursors;

    step 2:
        查看游標使用情況:
    select o.sid, osuser, machine, count(*) num_curs
    from v$open_cursor o, v$session s
    where user_name = 'user' and o.sid=s.sid
    group by o.sid, osuser, machine
    order by  num_curs desc;
    此處的user_name='user'中,user代表占用數據庫資源的數據庫用戶名.

    step 3:
        查看游標執行的sql情況:

    select o.sid q.sql_text
    from v$open_cursor o, v$sql q
    where q.hash_value=o.hash_value and o.sid = 123;

    step 4:
        根據游標占用情況分析訪問數據庫的程序在資源釋放上是否正常,如果程序釋放資源沒有問題,則加大游標數。
        alter system set open_cursors=2000 scope=both;
        
        補充:在java代碼中,執行conn.createStatement()和conn.prepareStatement()的時候,實際上都是相當與在數據庫中打開了一個cursor。尤其是,如果你的createStatement和prepareStatement是在一個循環里面的話,就會非常容易出現這個問題。因為游標一直在不停的打開,而且沒有關閉。
         一般來說,我們在寫Java代碼的時候,createStatement和prepareStatement都應該要放在循環外面,而且使用了這些Statment后,及時關閉。最好是在執行了一次executeQuery、executeUpdate等之后,如果不需要使用結果集(ResultSet)的數據,就馬上將Statment關閉,調用close()方法。

    posted on 2013-05-29 09:53 brock 閱讀(194) 評論(0)  編輯  收藏 所屬分類: oracle 數據庫
    主站蜘蛛池模板: 中文字幕亚洲一区二区va在线| 免费三级毛片电影片| 亚洲福利精品一区二区三区| 亚洲Aⅴ在线无码播放毛片一线天| 人禽杂交18禁网站免费| 在线亚洲高清揄拍自拍一品区| 中文字幕无码免费久久99| 亚洲1区1区3区4区产品乱码芒果| 久久经典免费视频| 精品亚洲456在线播放| 日韩在线天堂免费观看| 久久精品国产亚洲av品善| 亚洲A丁香五香天堂网| 国产精品玖玖美女张开腿让男人桶爽免费看 | 国产成人精品亚洲日本在线| 3d成人免费动漫在线观看| 亚洲综合在线成人一区| 18勿入网站免费永久| 亚洲妓女综合网99| 性色av免费观看| 免费看美女午夜大片| 亚洲熟妇无码AV在线播放| 四虎影视在线影院在线观看免费视频| 亚洲久本草在线中文字幕| 精品国产污污免费网站aⅴ| 国产成+人+综合+亚洲专| 免费国产a国产片高清| 国产又黄又爽又大的免费视频 | 亚洲神级电影国语版| 成人免费视频试看120秒| 大片免费观看92在线视频线视频| 国产V亚洲V天堂A无码| 日韩国产免费一区二区三区| 国产成人精品亚洲一区| 国产AV无码专区亚洲Av| 国国内清清草原免费视频99| 污视频网站在线观看免费| 亚洲最新永久在线观看| 国产女高清在线看免费观看| 在线人成免费视频69国产| 在线观看亚洲AV日韩AV|