zoukankan      html  css  js  c++  java
  • 探查“ORA-01000:超出最多允许打开的游标数”

    摘录自 http://blog.csdn.net/sunkk/article/details/3936759

    oracle 使用 OPEN_CURSORS 参数指定一个会话一次最多可以打开的游标的数量。超过此数量时,Oracle 将报告 orA-01000 错误。

    应用程序可以抛出此异常,比如记录日志,打印至界面,提示用户。

    采用如下三步可以排查清楚原因:

    1、show parameter open_cursors; 

    oracle 使用 init.ora 中的初始化参数 OPEN_CURSORS 指定一个会话一次最多可以拥有的游标数。缺省值为 300。

    2、SQL> select o.sid, osuser, machine, count(*) num_curs,s.program
      from v$open_cursor o, v$session s
      where user_name = 'SCOTT' and o.sid=s.sid
      group by o.sid, osuser, machine, s.program
      order by num_curs desc;

    可获知哪些应用程序打开了游标。

    3、SQL> select q.sql_text
      from v$open_cursor o, v$sql q
      where q.hash_value=o.hash_value and o.sid = 217;

    其中o.sid可以从第二步中获得,填写自己关注的应用程序的sid。

    同一个应用程序,如果有两个会话,则有两个sid。

    通过此步可获知是哪个应用程序的那一个sql语句打开了游标,未关闭游标。

    结果将显示正在连接上执行的查询。它提供了一个入手点,让您可以反向跟踪到打开游标的来源。

  • 相关阅读:
    计算机注销、热启动、冷启动
    从高处理解android与服务器交互(看懂了做开发就会非常的容易)
    Android—Work—1day
    软件需求分析方法
    Android 常用控件的介绍
    android中Json的一些应用
    java数据传递例子+内存分析
    android中MVP模式
    android的四层体系结构,基于mvc三层结构浅析
    java
  • 原文地址:https://www.cnblogs.com/chncongblog/p/3245728.html
Copyright © 2011-2022 走看看