在oracle中,可以利用select语句配合“v$session”来查询数据库的会话数量,“v$session”视图中包含了数据库实例中的每一条会话记录,语法为“select count(*) from v$session;”。
本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。
查看系统当前会话的连接数语法如下:
select count(*) from v$session;
查看当前oracle 节点的活跃会话数:
修改数据库最大会话数量:
alter system set processes=500 scope=spfile (在命令模式下执行)
查看当前数据库最大会话上限:
show parameters processes;
查看当前数据库DBLINK最多可打开的连接数量:
show parameters open_links;
扩展知识:
会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息.
我们可以通过oracle视图v$session来查看当前数据库中的所有会话信息,其中该视图有一列为status标志会话状态,oracle官方文档对这一列定义如下
STATUS VARCHAR2(8) Status of the session: ACTIVE - Session currently executing SQL INACTIVE KILLED - Session marked to be killed CACHED - Session temporarily cached for use by Oracle*XA SNIPED - Session inactive, waiting on the client
通过我们遇到的都是ACTIVE,INACTIVE,KILLED三种状态
1、active 会话处于活动状态,当前session正在执行sql语句
2、inactive会话处于不活动状态,sql语句已经执行完毕,但是由于某种原因,会话和后台进程没有释放,通过我们在sqlplus中退出和类似plsql developer工具log out或者直接退出,都是直接关闭会话,而不是将会话置于inactive状态,下面以sqlplus命令为例
[oracle@oracle11g ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Thu May 23 23:09:30 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select count(*) from v$process; COUNT(*) ---------- 30 SQL>
推荐教程:《Oracle视频教程》
以上是oracle怎么查询会话数的详细内容。更多信息请关注PHP中文网其他相关文章!