Oracle XE 免費版預設 processes = 40,對應最大並行連接數約 40。超過時拋出 ORA-00020: maximum number of processes exceeded。
| 參數 | 預設 | 建議調整值 | 說明 |
|---|---|---|---|
| processes | 40 | 200~300 | 核心參數,決定最大作業程序數,需重啟生效 (SPFILE) |
| sessions | 衍生自 processes | 200~300 | 通常 = processes * 1.1 + 5,同步調整 |
| session_cached_cursors | 20 | 200 | 減少游標開關開銷 |
| session_max_open_files | 10 | 200 | 單 Session 最大開啟檔案 |
| license_max_sessions | 無限制 | 200 | 授權上限,XE 免費版可設定 |
| license_sessions_warning | 無限制 | 180 | 預警閾值 |
-- 1. 以 SYSDBA 登入
sqlplus / as sysdba
-- 或
sqlplus system/password@XE
-- 2. 修改參數 (寫入 SPFILE,重啟生效)
ALTER SYSTEM SET processes=300 SCOPE=SPFILE;
ALTER SYSTEM SET sessions=335 SCOPE=SPFILE;
ALTER SYSTEM SET session_cached_cursors=200 SCOPE=SPFILE;
ALTER SYSTEM SET session_max_open_files=200 SCOPE=SPFILE;
ALTER SYSTEM SET license_max_sessions=300 SCOPE=SPFILE;
ALTER SYSTEM SET license_sessions_warning=250 SCOPE=SPFILE;
-- 3. 重啟 XE 服務
-- Windows: 服務管理器重啟 OracleServiceXE、OracleXETNSListener
-- Linux: service oracle-xe restart
SHOW PARAMETER processes;
SHOW PARAMETER sessions;
SELECT resource_name, current_utilization, max_utilization, limit_value
FROM v$resource_limit
WHERE resource_name IN ('processes','sessions');
SHARED SERVERS (MTS),可用較少 processes 支援更多連接,但 XE 版功能受限。≤ processes - 10 (預留背景程序)。僅調大
processes而不調sessions,會導致ORA-00018: maximum number of sessions exceeded先於 processes 觸發。