原文: http://www.blogjava.net/temper/archive/2009/03/24/261657.html
怎样查看oracle当前的连接数呢?只需要用下面的SQL语句查询一下就可以了。
select * from v$session where username is not null
select username,count(username) from v$session where username is not null group by username #查看不同用户的连接数
select count(*) from v$session #连接数
Select count(*) from v$session where status='ACTIVE' #并发连接数
show parameter processes #最大连接
alter system set processes = value scope = spfile;重启数据库 #修改连接
/home/oracle9i/app/oracle9i/dbs/init.ora
/home/oracle9i/app/oracle9i/dbs/spfilexxx.ora ## open_cursor
======================================================================
查看游标数目
原文:
处理超出打开游标的最大数异常(ORA-01000: maximum open cursors exceeded)
1. Oracle 使用 init.ora 中的初始化参数 OPEN_CURSORS 指定一个会话一次最多可以拥有的游标数。缺省值为 50。要获得数据库中 OPEN_CURSORS 参数的值,可以使用以下查询:
SQL> show parameter open_cursors;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
2. 下面的查询按降序显示用户"SYSTEM"为每个会话打开的游标数
select o.sid, osuser, machine, count(*) num_curs
from v$open_cursor o, v$session s
where user_name = 'SYSTEM' and o.sid=s.sid
group by o.sid, osuser, machine
order by num_curs desc;
请注意,v$open_cursor 可以跟踪会话中 PARSED 和 NOT CLOSED 的动态游标(使用 dbms_sql.open_cursor() 打开的游标)。它不会跟踪未经分析(但已打开)的动态游标。在应用程序中使用动态游标并不常见。本模式的前提是未使用动态游标