Description:
Example to List all Oracle Sessions (Except the Internal processes),
Check the example below:
------------------------------------------------------------------------------------------------------
set lines 2000
set heading on
set feedback off
prompt
prompt -- Sessions (Except INTERNAL Oracle)
prompt
col username format A16 truncate heading 'Username'
col oracle_id format A10 truncate heading 'Oracle id'
col osuser format A40 truncate heading 'osuser'
col pga format A5 truncate heading 'Pga'
col uga format A5 truncate heading 'Uga'
col pid format 9999999 heading 'Pid'
col Typ format A3 truncate heading 'Typ'
col status format A6 truncate heading 'status'
col command format A8 truncate heading 'command'
col logon_time format A18 truncate heading 'Logon time'
col cpu_used format 9999999 heading 'CPU used'
col Program format A35 truncate heading 'Program'
col Module format A35 truncate heading 'Module'
select decode(s.type,'BACKGROUND','INTERNAL'
,decode(u.password,'EXTERNAL',s.username||'/', s.username)
) username
, substr( decode (s.machine,null ,'',s.machine||':')||decode(s.osuser,'OraUser'
,decode(dp.paddr,null
,decode (ss.paddr,null
,decode(sign(instr(upper(p.program),'TCP')),1,''
,decode(sign(instr(upper(p.program),'TNS')),1,'',''
)
)
,''
)
,''
)
,s.osuser
)
, 1, 50
) OSuser
, substr(p.spid,1,6) pid
, substr(''''
|| s.sid
|| ','
||s.serial#
||''''
|| decode (s.status
,'KILLED','*'
,''
)
,1,10) oracle_id
, substr(s.program,1,30) program
, substr( decode( s.lockwait
, null
, decode( s.command,0,' ',
1,'CRE TAB',
2,'INSERT',
3,'SELECT',
4,'CRE CLUSTER',
5,'ALT CLUSTER',
6,'UPDATE',
7,'DELETE',
8,'DRP CLUSTER',
9,'CRE INDEX',
10,'DROP INDEX',
11,'ALT INDEX',
12,'DROP TABLE',
13,'CRE SEQ',
14,'ALT SEQ',
15,'ALT TABLE',
16,'DROP SEQ',
17,'GRANT',
18,'REVOKE',
19,'CRE SYN',
20,'DROP SYN',
21,'CRE VIEW',
22,'DROP VIEW',
23,'VAL INDEX',
24,'CRE PROC',
25,'ALT PROC',
26,'LOCK TABLE',
28,'RENAME',
29,'COMMENT',
30,'AUDIT',
31,'NOAUDIT',
32,'CRE DBLINK',
33,'DROP DBLINK',
34,'CRE DB',
35,'ALTER DB',
36,'CRE RBS',
37,'ALT RBS',
38,'DROP RBS',
39,'CRE TBLSPC',
40,'ALT TBLSPC',
41,'DROP TBLSPC',
42,'ALT SESSION',
43,'ALT USER',
44,'COMMIT',
45,'ROLLBACK',
46,'SAVEPOINT',
47,'PL/SQL EXEC',
48,'SET XACTN',
49,'SWITCH LOG',
50,'EXPLAIN',
51,'CRE USER',
52,'CRE ROLE',
53,'DROP USER',
54,'DROP ROLE',
55,'SET ROLE',
56,'CRE SCHEMA',
57,'CRE CTLFILE',
58,'ALTER TRACING',
59,'CRE TRIGGER',
60,'ALT TRIGGER',
61,'DRP TRIGGER',
62,'ANALYZE TAB',
63,'ANALYZE IX',
64,'ANALYZE CLUS',
65,'CRE PROFILE',
66,'DRP PROFILE',
67,'ALT PROFILE',
68,'DRP PROC',
69,'DRP PROC',
70,'ALT RESOURCE',
71,'CRE SNPLOG',
72,'ALT SNPLOG',
73,'DROP SNPLOG',
74,'CREATE SNAP',
75,'ALT SNAP',
76,'DROP SNAP',
79,'ALTER ROLE',
79,'ALTER ROLE',
85,'TRUNC TAB',
86,'TRUNC CLUST',
88,'ALT VIEW',
91,'CRE FUNC',
92,'ALT FUNC',
93,'DROP FUNC',
94,'CRE PKG',
95,'ALT PKG',
96,'DROP PKG',
97,'CRE PKG BODY',
98,'ALT PKG BODY',
99,'DRP PKG BODY'
,'OTH:'||to_char(s.command)
)
,'waiting'
)
,1,7
) command
, lower( decode ( s.status , 'INACTIVE' , '------'
, s.status
)
) status
, s1.value cpu_used
, substr(ltrim(to_char(round(pga.value/1024/1024,1),'9990D0')),1,5) as pga
, substr(ltrim(to_char(round(uga.value/1024/1024,1),'9990D0')),1,5) as uga
, to_char(s.logon_time, 'dd-mm-yyyy hh24:mi') logon_time
from sys.v_$sesstat s1
, sys.v_$process p
, sys.v_$sesstat pga
, sys.v_$sesstat uga
, sys.v_$session s
, sys.v_$dispatcher dp
, sys.v_$shared_server ss
, sys.user$ u
where s1.statistic# = 12
and s1.sid = s.sid
and p.addr = s.paddr
and s.username = u.name (+)
and p.addr = ss.paddr (+)
and p.addr = dp.paddr (+)
and uga.statistic# = 15
and pga.statistic# = 20
and s.sid = uga.sid
and s.sid = pga.sid
and nvl(s.osuser,'x') <> 'SYSTEM'
and s.type <> 'BACKGROUND'
and s.username is not null
order by s1.value
;
prompt
prompt -- Sessions TOAD, SQL*PLUS, OWB Client, SQL Developer
prompt
select decode(s.type
,'BACKGROUND','INTERNAL'
,decode(u.password
,'EXTERNAL',s.username||'/'
, s.username
)
) username
, substr( decode (s.machine
,null ,''
,s.machine||':')
|| decode( s.osuser
,'OraUser', decode(dp.paddr
,null, decode (ss.paddr
,null,decode(sign(instr(upper(p.program)
,'TCP'
)
)
,1,''
,decode(sign(instr(upper(p.program),'TNS'))
,1,''
,''
)
)
,''
)
,''
)
,s.osuser
)
, 1, 40 ) OSuser
, substr(p.spid,1,6) pid
, substr(''''
|| s.sid
|| ','
||s.serial#
||''''
|| decode (s.status
,'KILLED','*'
,''
)
,1,10) oracle_id
, substr(module,1,30) module
, substr( decode( s.lockwait
, null
, decode( s.command,0,' ',
1,'CRE TAB',
2,'INSERT',
3,'SELECT',
4,'CRE CLUSTER',
5,'ALT CLUSTER',
6,'UPDATE',
7,'DELETE',
8,'DRP CLUSTER',
9,'CRE INDEX',
10,'DROP INDEX',
11,'ALT INDEX',
12,'DROP TABLE',
13,'CRE SEQ',
14,'ALT SEQ',
15,'ALT TABLE',
16,'DROP SEQ',
17,'GRANT',
18,'REVOKE',
19,'CRE SYN',
20,'DROP SYN',
21,'CRE VIEW',
22,'DROP VIEW',
23,'VAL INDEX',
24,'CRE PROC',
25,'ALT PROC',
26,'LOCK TABLE',
28,'RENAME',
29,'COMMENT',
30,'AUDIT',
31,'NOAUDIT',
32,'CRE DBLINK',
33,'DROP DBLINK',
34,'CRE DB',
35,'ALTER DB',
36,'CRE RBS',
37,'ALT RBS',
38,'DROP RBS',
39,'CRE TBLSPC',
40,'ALT TBLSPC',
41,'DROP TBLSPC',
42,'ALT SESSION',
43,'ALT USER',
44,'COMMIT',
45,'ROLLBACK',
46,'SAVEPOINT',
47,'PL/SQL EXEC',
48,'SET XACTN',
49,'SWITCH LOG',
50,'EXPLAIN',
51,'CRE USER',
52,'CRE ROLE',
53,'DROP USER',
54,'DROP ROLE',
55,'SET ROLE',
56,'CRE SCHEMA',
57,'CRE CTLFILE',
58,'ALTER TRACING',
59,'CRE TRIGGER',
60,'ALT TRIGGER',
61,'DRP TRIGGER',
62,'ANALYZE TAB',
63,'ANALYZE IX',
64,'ANALYZE CLUS',
65,'CRE PROFILE',
66,'DRP PROFILE',
67,'ALT PROFILE',
68,'DRP PROC',
69,'DRP PROC',
70,'ALT RESOURCE',
71,'CRE SNPLOG',
72,'ALT SNPLOG',
73,'DROP SNPLOG',
74,'CREATE SNAP',
75,'ALT SNAP',
76,'DROP SNAP',
79,'ALTER ROLE',
79,'ALTER ROLE',
85,'TRUNC TAB',
86,'TRUNC CLUST',
88,'ALT VIEW',
91,'CRE FUNC',
92,'ALT FUNC',
93,'DROP FUNC',
94,'CRE PKG',
95,'ALT PKG',
96,'DROP PKG',
97,'CRE PKG BODY',
98,'ALT PKG BODY',
99,'DRP PKG BODY'
,'OTH:'||to_char(s.command)
)
,'waiting'
)
,1,7
) command
, lower( decode ( s.status , 'INACTIVE' , '------'
, s.status
)
) status
, s1.value cpu_used
, substr(ltrim(to_char(round(pga.value/1024/1024,1),'9990D0')),1,5) pga
, substr(ltrim(to_char(round(uga.value/1024/1024,1),'9990D0')),1,5) uga
, to_char(s.logon_time, 'dd-mm-yyyy hh24:mi') logon_time
from sys.v_$sesstat s1
, sys.v_$process p
, sys.v_$sesstat pga
, sys.v_$sesstat uga
, sys.v_$session s
, sys.v_$dispatcher dp
, sys.v_$shared_server ss
, sys.user$ u
where s1.statistic# = 12
and s1.sid = s.sid
and p.addr = s.paddr
and s.username = u.name (+)
and p.addr = ss.paddr (+)
and p.addr = dp.paddr (+)
and uga.statistic# = 15
and pga.statistic# = 20
and s.sid = uga.sid
and s.sid = pga.sid
and nvl(s.osuser,'x') <> 'SYSTEM'
and s.type <> 'BACKGROUND'
and s.username is not null
and (upper(s.module) like 'TOAD%'
or upper(s.module) like '%PLUS%'
-- or upper(s.program) like '%PLUS%'
or upper(s.module) like '%PB%'
or upper(s.module) like '%WINNT%'
or upper(s.module) like '%ORACLE SQL DEVELOPER%'
)
order by s1.value
;
prompt
prompt
set feedback on
break on report
compute sum of Session_Count on report
Prompt
Prompt Sessions by Program
Prompt
select upper(nvl(program,'Unidentified')) "Program"
, count(*) "Session_Count"
, upper(nvl(module,'-')) "Module"
from v$session
where type <> 'BACKGROUND'
and username is not null
group by nvl(program,'Unidentified'), nvl(module,'-')
order by 1;
Prompt
Prompt Session by Username
Prompt
select nvl(username,'Unidentified') "Username"
, count(*) "Session_Count"
from v$session
where type <> 'BACKGROUND'
group by nvl(username,'Unidentified')
order by 1;