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와 함께 살아가는 삶

,