在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的關係已經改變了。