Oracle Session UNDO, TEMP 사용 모니터링


 

 

 

 

 

1. SESSION 별 UNDO 사용 모니터링


SELECT 
        A.*
      , B.SQL_TEXT
FROM    (
      
            SELECT 
                    TO_CHAR(S.SID)||','||TO_CHAR(S.SERIAL#) SID_SERIAL
                  , NVL(S.USERNAME, 'NONE') ORAUSER
                  , S.SQL_ID
                  , S.PROGRAM
                  , R.NAME UNDOSEG
                  , T.USED_UBLK * TO_NUMBER(X.VALUE)/1024||'K' "UNDO"
            FROM 
                    SYS.V_$ROLLNAME R
                  , SYS.V_$SESSION S
                  , SYS.V_$TRANSACTION T
                  , SYS.V_$PARAMETER X
            WHERE   1           = 1
            AND     S.TADDR     = T.ADDR
            AND     R.USN       = T.XIDUSN(+)
            AND     X.NAME      = 'db_block_size'
        )   A
      , V_$SQL B
WHERE   1     =   1
AND     A.SQL_ID    =   B.SQL_ID;

2. SESSION 별 템프 사용 모니터링


SELECT  
        S.SID, S.SERIAL#, S.USERNAME, S.STATUS, S.SQL_ID
      , U.TABLESPACE, S.MACHINE, U.CONTENTS, U.SEGTYPE, U.EXTENTS, U.BLOCKS
      , S.LOGON_TIME
      , ROUND(((U.BLOCKS*P.VALUE)/1024/1024), 2) MB
      , ROUND(SUM(U.BLOCKS*P.VALUE) OVER()/1024/1024, 2) TOT_MB
      , ROUND(SUM(U.BLOCKS*P.VALUE) OVER()/1024/1024/1024, 2) TOT_GB
FROM    gV$SESSION S
      , V$SORT_USAGE U
      , SYS.V_$SYSTEM_PARAMETER P
WHERE   S.SADDR         = U.SESSION_ADDR
AND     UPPER(P.NAME)   = 'DB_BLOCK_SIZE'
AND     STATUS          = 'ACTIVE'
--AND     S.SQL_ID        = 'c8z3uzvgx74gy'
--AND     U.SEGTYPE       = 'LOB_DATA'
ORDER BY
        U.TABLESPACE DESC , MB DESC, S.MACHINE DESC, S.LOGON_TIME DESC

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

Oracle High Temp tablespace 사용률 조회 스크립트



SELECT   sl.sid,

           sl.serial#,

           SYSDATE,

           TO_CHAR (sl.start_time, 'DD-MON-YYYY:HH24:MI:SS') start_time,

           ROUND ( (sl.elapsed_seconds / 60), 2) min_elapsed,

           ROUND ( (sl.time_remaining / 60), 2) min_remaining,

           sl.opname,

           sl.MESSAGE

    FROM   v$session_longops sl, v$session s

   WHERE   s.sid = sl.sid AND s.serial# = sl.serial# AND sl.opname like 'Sort%' 

ORDER BY   sl.start_time DESC, sl.time_remaining ASC;


SELECT   s.sid "SID",

         s.username "User",

         s.program "Program",

         u.tablespace "Tablespace",

         u.contents "Contents",

         u.extents "Extents",

         u.blocks * 8 / 1024 "Used Space in MB",

         q.sql_text "SQL TEXT",

         a.object "Object",

         k.bytes / 1024 / 1024 "Temp File Size"

  FROM   v$session s,

         v$sort_usage u,

         v$access a,

         dba_temp_files k,

         v$sql q

 WHERE       s.saddr = u.session_addr

         AND s.sql_address = q.address

         AND s.sid = a.sid

         AND u.tablespace = k.tablespace_name;



블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,