日期:2014-05-16 浏览次数:20469 次
--当前的连接数 select count(*) from v$process; --数据库连接数 select value from v$parameter where name = 'processes'; --重启数据库: shutdown immediate; startup; --查看当前有哪些用户正在使用数据 SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine from v$session a, v$sqlarea b where a.sql_address =b.address order by cpu_time/executions desc; --连接数 select count(*) from v$session; --并发连接数 select count(*) from v$session where status='ACTIVE'; --列出当前数据库建立的会话情况 select sid,serial#,username,program,machine,status from v$session; /*输出结果为: SID SERIAL# USERNAME PROGRAM MACHINE STATUS ---- ------- ---------- ----------- --------------- -------- 1 1 ORACLE.EXE WORK3 ACTIVE 2 1 ORACLE.EXE WORK3 ACTIVE 3 1 ORACLE.EXE WORK3 ACTIVE 4 1 ORACLE.EXE WORK3 ACTIVE 5 3 ORACLE.EXE WORK3 ACTIVE 6 1 ORACLE.EXE WORK3 ACTIVE 7 1 ORACLE.EXE WORK3 ACTIVE 8 27 SYS SQLPLUS.EXE WORKGROUP\\WORK3 ACTIVE 11 5 DBSNMP dbsnmp.exe WORKGROUP\\WORK3 INACTIVE 其中, SID 会话(session)的ID号; SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话; USERNAME 建立该会话的用户名; PROGRAM 这个会话是用什么工具连接到数据库的; STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作; 如果DBA要手工断开某个会话,则执行: alter system kill session \'SID,SERIAL#\' */ --如果DBA要手工断开某个会话,则执行: alter system kill session \'SID,SERIAL#\' --分组统计一下 SELECT username, machine, program, status, COUNT(machine) AS FROM v$session GROUP BY username, machine, program, status ORDER BY machine; --到command窗口执行如下命令查看最大连接 show parameter processes; --到command窗口执行如下命令查看最大连接 show parameter sessions --修改最大进程数: alter system set processes = 300 scope = spfile; alter system set sessions=335 scope=spfile; /* 修改processes和sessions值必须重启oracle服务器才能生效 ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下: sessions=(1.1*process+5) */