在oracle11g以前的版本中,参数processes和sessiones一般是sessiones=1.1*processes+1的关系,但是在oracle11g中,参数processes和sessiones的关系好像变成了sessions=1.5*processes+26 。
下面我们来做验证:
SYS@ats>select * from v$version;
BANNER
----------------------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
SYS@ats>show parameter processes;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 500
SYS@ats>show parameter session;
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
session_cached_cursors integer 50
session_max_open_files integer 10
sessions integer 776
shared_server_sessions integer
SYS@ats>
我们然后把processes改为1000 看sessions变成多少了:
SYS@ats>alter system set processes=1000 scope=spfile;
系统已更改。
SYS@ats>startup force;
ORACLE 例程已经启动。
Total System Global Area 3206836224 bytes
Fixed Size 2230768 bytes
Variable Size 2483029520 bytes
Database Buffers 704643072 bytes
Redo Buffers 16932864 bytes
数据库装载完毕。
数据库已经打开。
SYS@ats>show parameter session;
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
session_cached_cursors integer 50
session_max_open_files integer 10
sessions integer 1528
shared_server_sessions integer
SYS@ats>show parameter processes;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 1000
SYS@ats>
sessions变为1528了,好像不是processes*1.5+26的关系啊,这次加的是28;
SYS@ats>alter system set processes=100 scope=spfile;
系统已更改。
SYS@ats>startup force;
ORACLE 例程已经启动。
Total System Global Area 3206836224 bytes
Fixed Size 2230768 bytes
Variable Size 2483029520 bytes
Database Buffers 704643072 bytes
Redo Buffers 16932864 bytes
数据库装载完毕。
数据库已经打开。SYS@ats>select status from v$instance;
SYS@ats>conn sys@ats as sysdba
输入口令: ***
已连接。
SYS@ats>show parameter 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 560
shared_server_sessions integer
SYS@ats>show parameter processes;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 100
SYS@ats>
这次sessions=5*processes+60了,真是琢磨不透了。但是提醒自己oracle11gR2版本中sessions和processes的关系已经改变了。