Oracle会话及连接数优化

一、修改Oracle会话及最大连接数

1、查看最大连接数

SQL> show parameter processes;

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer    0
db_writer_processes                  integer    3
gcs_server_processes                integer    0
global_txn_processes                integer    1
job_queue_processes                  integer    1000
log_archive_max_processes            integer    4
processes                            integer    150

2、修改最大连接数

SQL> alter system set processes=500 scope=spfile;

系统已更改。

3、查看最大会话数

SQL> show parameters sessions;

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size          integer    0
java_soft_sessionspace_limit        integer    0
license_max_sessions                integer    0
license_sessions_warning            integer    0
sessions                            integer    264
shared_server_sessions              integer

4、修改最大会话数

SQL> alter system set sessions=555 scope=spfile;

系统已更改。
5、连接数和会话数计算关系

      sessions = 1.1 * process + 5

    说明:连接数和会话数参数修改,Oracle必须重启

二、常用会话及连接数查询方法

1、查询数据库最大连接数

SQL> show parameter processes;

或者

SQL>select value from v$parameter where name = 'processes';

2、修改数据库最大连接数(默认150)

SQL> alter system set processes=500 scope=spfile;

3、查询数据库当前连接数

SQL> select count(*) from v$process;
4、查看数据库最大会话数

SQL> show parameters sessions;

或者

SQL> select value from v$parameter where name = 'sessions';

5、修改数据库最大会话数(默认248)

SQL> alter system set sessions=555 scope=spfile;

6、查看当前会话数

SQL> select count(*) from v$session;

7、查看当前并发(活动)会话数

SQL> select count(*) from v$session where status='ACTIVE';

8、查看当前会话详细信息

SQL> select sid,serial#,username,program,machine,status from v$session;

9、查看正在使用的用户

select oSUSEr,
      t1.username as username,
      cpu_time / executions / 1000000 || 's' as runtimes,
      sql_fulltext,
      machine
  from v$session t1, v$sqlarea t2
 where t1.sql_address = t2.address
 order by runtimes desc;

三、OS的参数区别

1、Linux和Windows系统,对sessions的处理是有区别的

    Linux系统1会话对应1个进程处理

    Windows系统1会话对应1个线程处理

相关推荐