欢迎投稿

今日深度:

Oracle会话及连接数优化,oracle会话

Oracle会话及连接数优化,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个线程处理


oracle老提示限制连接数,怎让oracle无限连接

只能设置很大,不能无限
当前的连接数
select count(*) from v$process;
设置的最大连接数(默认值为150)
select value from v$parameter where name = 'processes';
修改最大连接数
alter system set processes = 300 scope = spfile;
当数据库最大连接数不够时会出现客户端连接间歇性失败,报错ORA-12519。

修改Oracle最大连接数的方法
1、 进入“SQL*Plus Worksheet”,如下图所示。
2、 点击“改变数据库连接…”按钮,如下图所示。
3、 进入“数据库连接信息”界面,输入用户名、口令、需要修改最大连接数的数据库服务名,连接身份选择“SYSDBA”,点击“确定”,如下图所示。
4、 输入指令“show parameter processes;”并执行,查看目前最大连接数,如下图所示。
5、 输入指令“alter system set processes=600 scope=spfile;”并执行,修改最大连接数为600,如下图所示。
6、 输入指令“create pfile from spfile;”并执行,创建Profile,如下图所示。
7、 关闭“Enterprise Manager Console”,重启Oracle服务或重启Oracle数据库服务器
8、 重复操作1、2、3、4步,确认最大连接数修改成功。
 

问ORACLE怎查看更改连接数,进程数及用户数,三者之间有什关系?

SQL> select count(*) from v$session #连接数
SQL> Select count(*) from v$session where status='ACTIVE' #并发连接数
SQL> show parameter processes #最大连接

process:这个参数限制了能够连接到SGA的操作系统进程数(或者是Windows 系统中的线程数),这个总数必须足够大,从而能够适用于后台进程与所有的专用服务器进程,此外,共享服务器进程与调度进程的数目也被计算在内.因此,在专用服务器环境中,这是一种限制并发连接数的方法.

Sessions:是被应用于oracle层次而非操作系统层次.在不考虑通过专用服务器或共享服务器进行登录的情况下,这个参数限制了对指定实例的并发登陆数.
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3337.html NewsArticle Oracle会话及连接数优化,oracle会话 一、修改Oracle会话及最大连接数 1、查看最大连接数 SQL show parameter processes; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------...
评论暂时关闭