Oracle查询会话连接数
一 列出當(dāng)前數(shù)據(jù)庫(kù)建立的會(huì)話情況
不同版本數(shù)據(jù)庫(kù)提供的系統(tǒng)表會(huì)有不同,你可以根據(jù)數(shù)據(jù)字典查看該版本數(shù)據(jù)庫(kù)所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根據(jù)這些表就可以獲得會(huì)話信息
select sid,serial#,status,username,schemaname,osuser,terminal,machine,
program,a.name from v$session s,audit_actions a where s.COMMAND=a.action;
像這樣就是 查詢當(dāng)前正在操作的會(huì)話:
DBA要定時(shí)對(duì)數(shù)據(jù)庫(kù)的連接情況進(jìn)行檢查,看與數(shù)據(jù)庫(kù)建立的會(huì)話數(shù)目是不是正常,如果建立了過多的連接,會(huì)消耗數(shù)據(jù)庫(kù)的資源。同時(shí),對(duì)一些“掛死”的連接,可能會(huì)需要DBA手工進(jìn)行清理。
以下的SQL語(yǔ)句列出當(dāng)前數(shù)據(jù)庫(kù)建立的會(huì)話情況:
SID 會(huì)話(session)的ID號(hào);
SERIAL#????? 會(huì)話的序列號(hào),和SID一起用來(lái)唯一標(biāo)識(shí)一個(gè)會(huì)話;
USERNAME 建立該會(huì)話的用戶名;
PROGRAM? 這個(gè)會(huì)話是用什么工具連接到數(shù)據(jù)庫(kù)的;
STATUS?????? 當(dāng)前這個(gè)會(huì)話的狀態(tài),ACTIVE表示會(huì)話正在執(zhí)行某些任務(wù),INACTIVE表示當(dāng)前會(huì)話沒有執(zhí)行任何操作;
如果DBA要手工斷開某個(gè)會(huì)話,則執(zhí)行:
alter system kill session 'SID,SERIAL#';
注意,上例中SID為1到7(USERNAME列為空)的會(huì)話,是Oracle的后臺(tái)進(jìn)程,不要對(duì)這些會(huì)話進(jìn)行任何操作。
?
二 查看連接的進(jìn)程
SELECT SID, SERIAL#, USERNAME, OSUSER FROM V$SESSION;三 查看連接數(shù)
SELECT COUNT (*) FROM v$session;四 查看連接的并發(fā)數(shù)
SELECT COUNT(*) FROM V$SESSION WHERE STATUS='ACTIVE';?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Oracle查询会话连接数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NewSQL讲解
- 下一篇: Xshell链接远程服务器调用Pycha