SQL> Select count(*) from v$session where status='ACTIVE' ;
COUNT(*)
----------
20
SQL> Select count(*) from v$session;
COUNT(*)
----------
187
SQL> show parameter processes;
NAME TYPE? VALUE
------------------------------------ ----------- ----------
aq_tm_processes integer???? 0
db_writer_processes??? integer???? 1
gcs_server_processes???? integer???? 0
job_queue_processes??? integer???? 10
log_archive_max_processes??? integer???? 2
processes integer???? 450
SQL>
并發(fā)指active,I SEE
SQL> select count(*) from v$session?? #連接數
SQL> Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數
SQL> show parameter processes?? #最大連接
SQL> alter system set processes = value scope = spfile;重啟數據庫?? #修改連接
unix 1個用戶session 對應一個操作系統(tǒng) process
而 windows體現(xiàn)在線程
DBA要定時對數據庫的連接情況進行檢查,看與數據庫建立的會話數目是不是正常,如果建立了過多的連接,會消耗數據庫的資源。同時,對一些"掛死"的連接,可能會需要DBA手工進行清理。
以下的SQL語句列出當前數據庫建立的會話情況:
select sid,serial#,username,program,machine,status
from v$session;
輸出結果為:
SID SERIAL# USERNAME PROGRAM MACHINE STATUS
---- ------- ---------- ----------- --------------- --------
1 1 ORACLE.EXE WORK3 ACTIVE
2 1 ORACLE.EXE WORK3 ACTIVE
3 1 ORACLE.EXE WORK3 ACTIVE
4 1 ORACLE.EXE WORK3 ACTIVE
5 3 ORACLE.EXE WORK3 ACTIVE
6 1 ORACLE.EXE WORK3 ACTIVE
7 1 ORACLE.EXE WORK3 ACTIVE
8 27 SYS SQLPLUS.EXE WORKGROUP\\WORK3 ACTIVE
11 5 DBSNMP dbsnmp.exe WORKGROUP\\WORK3 INACTIVE
其中,
SID 會話(session)的ID號;
SERIAL# 會話的序列號,和SID一起用來唯一標識一個會話;
USERNAME 建立該會話的用戶名;
PROGRAM 這個會話是用什么工具連接到數據庫的;
STATUS 當前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任務,INACTIVE表示當前會話沒有執(zhí)行任何操作;
如果DBA要手工斷開某個會話,則執(zhí)行:
alter system kill session \'SID,SERIAL#\';
注意,上例中SID為1到7(USERNAME列為空)的會話,是Oracle的后臺進程,不要對這些會話進行任何操作。
關鍵詞標簽:Oracle
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數據庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數據處理 Oracle刪除表的幾種方法