#查询当前数据库进程的连接数
SQL> select count(*) from v$process;
COUNT(*)
----------
31
#查询数据库当前会话的连接数
SQL> select count(*) from v$session;
COUNT(*)
----------
28
#查询oracle的并发连接数
SQL> select count(*) from v$session where status='ACTIVE';
COUNT(*)
----------
23
#查询不同用户的连接数
SQL> select username,count(username) from v$session where username is not null group by username;
USERNAME COUNT(USERNAME)
------------------------------ ---------------
WLY 3
HMF 2
SYS 1
#查看数据库设置的最大连接数和最大session数量,show parameter processes命令查看的是汇总的信息,也可以直接select value from v$parameter where name ='processes'; 语句查看,最大进程连接数为150.
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 2
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 150
SQL> select value from v$parameter where name ='processes';
VALUE
--------------------------------------------------------------------------------
150
#查看当前数据库建立的会话情况:
SQL> select sid,serial#,username,program,machine,status from v$session;
#查询会话数
SQL>select * from v$license;
其中sessions_highwater纪录曾经到达的最大会话数
************************************
SESSION_MAX
该参数指出允许并发用户会话的最大数。若此参数为0,则不能实施并发。若并发的用户会话数已达到此极限,则只有具有RESTRICTED SESSION权限的用户才能连接到服务器。
****************************************
USERS_MAX
该参数指出在一个数据库上可建立的最大用户数。当达到最大值时,便不能再建新用户,可改变此值以放松限制。在SESSION_MAX_或USER_MAX为0时,则并发会话或任何用户都不能用。若对不同的实例,此参数不同时,则以第一个登录的数据库实例的参数为准。
#当数据库连接数需要调整时,可以用alter system set processes = 200 scope = spfile;修改连接数。
SQL> alter system set processes = 200 scope = spfile;
System altered.
#修改processes和sessions值必须重启oracle服务器才能生效
shutdown immediate;关闭实例
startup启动
网友评论