Friday, June 19, 2009 |
Session Statistics |
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))Labels: Session Statistics |
posted by Srinivasan .R @ 1:56 AM |
|
|