Session Statistics
Here are some scripts related to Session Statistics .
Session I/O By User
SESSION I/O BY USER NOTES:
· Username - Name of the Oracle process user
· OS User - Name of the operating system user
· PID - Process ID of the session
· SID - Session ID of the session
· Serial# - Serial# of the session
· Physical Reads - Physical reads for the session
· Block Gets - Block gets for the session
· Consistent Gets - Consistent gets for the session
· Block Changes - Block changes for the session
· Consistent Changes - Consistent changes for the session
select nvl(ses.USERNAME,'ORACLE PROC') username,
OSUSER os_user,
PROCESS pid,
ses.SID sid,
SERIAL#,
PHYSICAL_READS,
BLOCK_GETS,
CONSISTENT_GETS,
BLOCK_CHANGES,
CONSISTENT_CHANGES
from v$session ses,
v$sess_io sio
where ses.SID = sio.SID
order by PHYSICAL_READS, ses.USERNAME
CPU Usage By Session
CPU USAGE BY SESSION NOTES:
· Username - Name of the user
· SID - Session id
· CPU Usage - CPU centiseconds used by this session (divide by 100 to get real CPU seconds)
select nvl(ss.USERNAME,'ORACLE PROC') username,
se.SID,
VALUE cpu_usage
from v$session ss,
v$sesstat se,
v$statname sn
where se.STATISTIC# = sn.STATISTIC#
and NAME like '%CPU used by this session%'
and se.SID = ss.SID
order by VALUE desc
Resource Usage By User
RESOURCE USAGE BY USER NOTES:
· SID - Session ID
· Username - Name of the user
· Statistic - Name of the statistic
· Value - Current value
select ses.SID,
nvl(ses.USERNAME,'ORACLE PROC') username,
sn.NAME statistic,
sest.VALUE
from v$session ses,
v$statname sn,
v$sesstat sest
where ses.SID = sest.SID
and sn.STATISTIC# = sest.STATISTIC#
and sest.VALUE is not null
and sest.VALUE != 0
order by ses.USERNAME, ses.SID, sn.NAME
Session Stats By Session
SESSION STAT NOTES:
· Username - Name of the user
· SID - Session ID
· Statistic - Name of the statistic
· Usage - Usage according to Oracle
select nvl(ss.USERNAME,'ORACLE PROC') username,
se.SID,
sn.NAME stastic,
VALUE usage
from v$session ss,
v$sesstat se,
v$statname sn
where se.STATISTIC# = sn.STATISTIC#
and se.SID = ss.SID
and se.VALUE > 0
order by sn.NAME, se.SID, se.VALUE desc
Cursor Usage By Session
CURSOR USAGE BY SESSION NOTES:
· Username - Name of the user
· Recursive Calls - Total number of recursive calls
· Opened Cursors - Total number of opened cursors
· Current Cursors - Number of cursor currently in use
select user_process username,
"Recursive Calls",
"Opened Cursors",
"Current Cursors"
from (
select nvl(ss.USERNAME,'ORACLE PROC')||'('||se.sid||') ' user_process,
sum(decode(NAME,'recursive calls',value)) "Recursive Calls",
sum(decode(NAME,'opened cursors cumulative',value)) "Opened Cursors",
sum(decode(NAME,'opened cursors current',value)) "Current Cursors"
from v$session ss,
v$sesstat se,
v$statname sn
where se.STATISTIC# = sn.STATISTIC#
and (NAME like '%opened cursors current%'
or NAME like '%recursive calls%'
or NAME like '%opened cursors cumulative%')
and se.SID = ss.SID
and ss.USERNAME is not null
group by nvl(ss.USERNAME,'ORACLE PROC')||'('||se.SID||') '
)
orasnap_user_cursors
order by USER_PROCESS,"Recursive Calls"
User Hit Ratios
USER HIT RATIO NOTES:
· Username - Name of the user
· Consistent Gets - The number of accesses made to the block buffer to retrieve data in a consistent mode.
· DB Blk Gets - The number of blocks accessed via single block gets (i.e. not through the consistent get mechanism).
· Physical Reads - The cumulative number of blocks read from disk.
· Logical reads are the sum of consistent gets and db block gets.
· The db block gets statistic value is incremented when a block is read for update and when segment header blocks are accessed.
· Hit ratio should be > 90%
select USERNAME,
CONSISTENT_GETS,
BLOCK_GETS,
PHYSICAL_READS,
((CONSISTENT_GETS+BLOCK_GETS-PHYSICAL_READS) / (CONSISTENT_GETS+BLOCK_GETS)) Ratio
from v$session, v$sess_io
where v$session.SID = v$sess_io.SID
and (CONSISTENT_GETS+BLOCK_GETS) > 0
and USERNAME is not null
order by ((CONSISTENT_GETS+BLOCK_GETS-PHYSICAL_READS) / (CONSISTENT_GETS+BLOCK_GETS))
No comments:
Post a Comment