DBA要定時對資料庫的串連情況進行檢查,看與資料庫建立的會話數目是不是正常,如果建立了過多的串連,會消耗資料庫的資源。同時,對一些“掛死”的串連,可能會需要DBA手工進行清理。
首先要說的是,不同版本資料庫提供的系統資料表會有不同,你可以根據資料字典查看該版本資料庫所提供的表
like this:
select * from dict where table_name like '%SESSION% ';
就可以查出一些表,然後根據這些表就可以獲得會話資訊。
像這樣就是 查詢當前正在操作的會話:
SELECT SID, SERIAL#, STATUS, USERNAME, SCHEMANAME, OSUSER,TERMINAL, MACHINE,
PROGRAM, A.NAME FROM V$SESSION S, AUDIT_ACTIONS A WHERE S.COMMAND = A.ACTION;
一、查看資料庫的串連情況
DBA要定時對資料庫的串連情況進行檢查,看與資料庫建立的會話數目是不是正常,如果建立了過多的串連,會消耗資料庫的資源。同時,對一些“掛死”的串連,可能會需要DBA手工進行清理。
以下的SQL語句列出當前資料庫建立的會話情況:
select sid,serial#,username,program,machine,status
from v$session;
其中,
SID 會話(session)的ID號;
SERIAL# 會話的序號,和SID一起用來唯一標識一個會話;
USERNAME 建立該會話的使用者名稱;
PROGRAM 這個會話是用什麼工具串連到資料庫的;
STATUS 當前這個會話的狀態,ACTIVE表示會話正在執行某些任務,INACTIVE表示當前會話沒有執行任何操作;
如果DBA要手工斷開某個會話,則執行:
alter system kill session 'SID,SERIAL#';
注意,上例中SID為1到7(USERNAME列為空白)的會話,是Oracle的後台進程,不要對這些會話進行任何操作。
二、常用命令
select count(*) from v$session #串連數
Select count(*) from v$session where status='ACTIVE' #並發串連數
show parameter processes #最大串連
alter system set processes = value scope = spfile;重啟資料庫 #修改串連
1:oracle中怎樣查看總共有哪些使用者
select * from all_users;
2:查看oracle當前串連數
怎樣查看oracle當前的串連數呢?只需要用下面的SQL語句查詢一下就可以了。
select * from v$session where username is not null
select username,count(username) from v$session where username is not null group by username #查看不同使用者的串連數
select count(*) from v$session #串連數
Select count(*) from v$session where status='ACTIVE' #並發串連數
show parameter processes #最大串連
alter system set process
3:列出當前資料庫建立的會話情況:
select sid,serial#,username,program,machine,status from v$session;