今天老魏遇到了一个这样的问题,
在google之后,发现讲open_cursors参数调大一些,就可以避免这样的问题(具体操作方法,可以自行百度/google)。
老魏在学习的时候,对这个游标的概念有点傻傻分不清,于是花费了一些时间,想把这个问题搞懂。
对于这个问题的实践,我参考了asktom上面,tom大师的回复。
我先阐述一下最开始的设想,我认为每执行一条sql语句,都会占用一个opencursor,并且会使v$sesstat的value值成比例增加。
为了验证我的猜想,我开始了下面的实验。
session1
SYS@orcl> select userenv('sid') from dual;
USERENV('SID')
--------------
1
SYS@orcl> select count(*) from dba_objects;
COUNT(*)
----------
13748
session2 查看sid=1的value值
SYS@orcl> select sid,value,b.class from v$sesstat a,v$statname b where a.statistic#=b.statistic# and name='opened cursors current' and a.sid=1 order by 2
2 ;
SID VALUE CLASS
---------- ---------- ------