본문 바로가기

DataBase/Oracle

오라클 DB 정보, 상태 조회

테이블스페이스별 데이터파일의 I/O 를 조회하자


/* 파일 i/o 가 한쪽에만 치우칠 경우, 부하를 분산 시켜줄 필요가 있다 */


SELECT PHYRDS, PHYWRTS, D.NAME FILENAME, T.NAME TSNAME
FROM V$DATAFILE D, V$FILESTAT F, V$TABLESPACE T
WHERE D.FILE# = F.FILE#
AND D.TS# = T.TS#
ORDER BY T.NAME, D.NAME;


--------------


현재 접속된 사용자가 어떤 SQL을 사용하고 있을까?


select a.sid, a.serial#, b.hash_value, b.sql_text
from v$session a, v$sqltext b
where 1=1
and a.username = '&username'
and a.sql_hash_value = b.hash_value
order by b.hash_value, b.piece;
 


---------------


누가 테이블에 LOCK 를 발생시켰나?


-- 테이블에 lock을 발생시킨 user를 찾을 경우가 많습니다.

-- 특히 OPS(RAC on 9i) system에서는 더더욱 그런 경우가 많구요.

-- 제가 관리하던 시스템에서 자주 썼던 sql입니다.

-- 기타 많은 유사한 sql로 있습니다만 한번 써 보시길 바랍니다.


/* 락발생 사용자와 sql, object 조회 */

select distinct x.session_id,  a.serial#,d.object_name,a.machine,a.terminal,a.program,b.address,b.piece, b.sql_text
from v$locked_object x, v$session a, v$sqltext b, dba_objects d
where x.session_id = a.sid
and x.object_id = d.object_id
and a.sql_address = b.address
--and a.terminal = '김성기'
order by b.address,b.piece;


/* 락 발생 사용자확인 */
select distinct x.session_id,  a.serial#,d.object_name,a.machine,a.terminal,a.program, a.logon_time
--select  'alter system kill session ''' || a.sid || ',' || a.serial# || ''';'
from gv$locked_object x, gv$session a, dba_objects d
where x.session_id = a.sid
and x.object_id = d.object_id
order by logon_time;
;


/* 현재 접속자의 sql 분석 */
select distinct a.sid,a.serial#,a.machine,a.terminal,a.program,b.address,b.piece, b.sql_text
from v$session a, v$sqltext b
where a.sql_address = b.address
order by a.sid, a.serial#,b.address,b.piece;


/* 접속 사용자 제거 */
--alter system kill session 'session_id,serial#';
alter system kill session '27,29915';


/****************************************************

************* Thinking Oracle - zerobug *************

****************************************************/



----------------------------------


wait 가 가장많은 사용자 조회하기


-- 세션 모니터링 쿼리는 비일비재 하지만 특정이벤트에 대한 세션정보와

    그에 따른 기타 정보를 조회하는 쿼리입니다.


-- wait 가 가장 많은 사용자 조회
select se.sid, p.spid,ss.status, ss.machine, ss.program, ss.terminal, ss.username,
       ss.sql_hash_value, se.event, se.time_waited,
       so.block_gets, so.consistent_gets, so.physical_reads

from v$session_event se, v$session ss, v$process p, v$sess_io so
where 1=1
and event like '%db file %'
and se.sid = ss.sid
and ss.paddr = p.addr
and ss.sid = so.sid
order by time_waited desc
;

-- 해당 sql 조회
select *
from v$sqltext
where hash_value = '984118682'
order by piece;

출처 : Tong - ja0611님의 PROGRAM통