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層次而非作業系統層次.在不考慮通過專用伺服器或共用伺服器進行登入的情況下,這個參數限制了對指定執行個體的並發登陸數.