oracle数据库忽然连不上了,一查是游标数量超了。
1.查看游标数
show parameter open_cursors
2.修改游标数
alter system set open_cursors = 10000;
3.获取打开的游标数
select o.sid, osuser, machine, count(*) num_curs
from v$open_cursor o, v$session s
where user_name = 'AF651_U8'
and o.sid = s.sid
group by o.sid, osuser, machine
order by num_curs desc;
SID OSUSER MACHINE NUM_CURS
4.查询某游标执行的sql
select q.sql_text
from v$open_cursor o, v$sql q
where q.hash_value = o.hash_value
and o.sid = 396;
5.解决问题的办法:
--1.查找代码不合理的地方,修改代码。
--2.重启oracle数据库
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:- Oracle 遍历游标的四种方式汇总(for、fetch、while、BULK COLLECT)
- 详解Oracle游标的简易用法
- Oracle游标的使用实例详解
- Oracle中游标Cursor基本用法详解
- 详解Oracle隐式游标和显式游标
- Oracle存储过程游标用法分析
- Oracle出现超出打开游标最大数的解决方法
- Oracle显示游标的使用及游标for循环
- Oracle存储过程返回游标实例详解
- Oracle 游标使用总结
- Oracle使用游标进行分批次更新数据的6种方式及速度比对