查看oracle链接数

SQL> Select count(*) from v$session where status='ACTIVE' ;
  COUNT(*)
  ----------
  20
  SQL> Select count(*) from v$session;
  COUNT(*)
  ----------
  187
  SQL> show parameter processes;
  NAME                               TYPE        VALUE
  ------------------------------------ ----------- ----------
  aq_tm_processes                   integer     0
  db_writer_processes                integer     1
  gcs_server_processes                 integer     0
  job_queue_processes                integer     10
  log_archive_max_processes          integer     2
  processes                         integer     450
  SQL>
  并发指active,I SEE
  SQL> select count(*) from v$session   #链接数
  SQL> Select count(*) from v$session where status='ACTIVE' #并发链接数
  SQL> show parameter processes   #最大链接
  SQL> alter system set processes = value scope = spfile;重启数据库   #修改链接
  unix 1个用户session 对应一个操做系统 process
  而 windows体如今线程
  DBA要定时对数据库的链接状况进行检查,看与数据库创建的会话数目是否是正常,若是创建了过多的链接,会消耗数据库的资源.同时,对一些"挂死"的链接,可能会须要DBA手工进行清理.
  如下的SQL语句列出当前数据库创建的会话状况:
  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#\';
  注意,上例中SID为1到7(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操做.数据库

相关文章
相关标签/搜索