<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 閱讀(195) 評論(0)  編輯  收藏 所屬分類: oracle 數據庫
    主站蜘蛛池模板: 亚洲三级视频在线| 亚洲精品91在线| 成在线人直播免费视频| 国产日韩亚洲大尺度高清| 亚洲精品高清国产麻豆专区| 成人av片无码免费天天看| 99视频在线精品免费观看6| 亚洲天堂一区在线| 亚洲性线免费观看视频成熟| 亚洲高清免费视频| 亚洲欧洲另类春色校园网站| 日本阿v免费费视频完整版| 亚洲一区二区三区四区视频| 毛片免费视频在线观看| 亚洲国产成人精品无码久久久久久综合 | 日韩一区二区三区免费体验| 亚洲AV永久无码精品一福利| 久久久精品2019免费观看| 日产亚洲一区二区三区| 搜日本一区二区三区免费高清视频| 亚洲国产aⅴ综合网| 成人久久免费网站| 国产午夜亚洲精品理论片不卡 | 久久免费观看国产99精品| 亚洲美女视频网址| 国产男女猛烈无遮挡免费视频网站| 亚洲人妖女同在线播放| 成人黄动漫画免费网站视频 | 最近中文字幕mv免费高清视频7| 亚洲精品乱码久久久久蜜桃| 久久久久久精品成人免费图片| 亚洲精品无码专区在线在线播放| 久久午夜夜伦鲁鲁片无码免费| 亚洲中文字幕无码一去台湾| 免费中文字幕在线| 久久99精品视免费看| 亚洲日本va中文字幕久久| 一级做a爰片久久毛片免费陪| 久久香蕉国产线看观看亚洲片| a在线视频免费观看| 国产成人精品日本亚洲网址 |