"모니터링 SQL"의 두 판 사이의 차이
DB CAFE
(→sql_id 의 바인드변수 값 조회) |
(→커셔 내부 sql쿼리 Flush) |
||
1번째 줄: | 1번째 줄: | ||
+ | === 유저의 모든 세션 트레이스 === | ||
+ | <source lang=sql> | ||
+ | --- CREATE THE BELOW TRIGGER TO ENABLE TRACE ALL SESSION OF USER ( SCOTT) | ||
+ | CREATE OR REPLACE TRIGGER USER_TRACE_TRG | ||
+ | AFTER LOGON ON DATABASE | ||
+ | BEGIN | ||
+ | IF USER = 'SCOTT' | ||
+ | THEN | ||
+ | execute immediate 'alter session set events ''10046 trace name context forever, level 12'''; | ||
+ | END IF; | ||
+ | EXCEPTION | ||
+ | WHEN OTHERS THEN | ||
+ | NULL; | ||
+ | END; | ||
+ | / | ||
+ | </source> | ||
+ | |||
===커셔 내부 sql쿼리 Flush === | ===커셔 내부 sql쿼리 Flush === | ||
<source lang=sql> | <source lang=sql> |
2024년 7월 11일 (목) 19:46 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 유저의 모든 세션 트레이스[편집]
--- CREATE THE BELOW TRIGGER TO ENABLE TRACE ALL SESSION OF USER ( SCOTT)
CREATE OR REPLACE TRIGGER USER_TRACE_TRG
AFTER LOGON ON DATABASE
BEGIN
IF USER = 'SCOTT'
THEN
execute immediate 'alter session set events ''10046 trace name context forever, level 12''';
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
/
2 커셔 내부 sql쿼리 Flush[편집]
-- First get the address, hash_value of the sql_id
select ADDRESS, HASH_VALUE from V$SQLAREA where SQL_ID like '5qd8a442c328k';
ADDRESS HASH_VALUE
--------------- ------------
C000007067F39FF0 4000666812
-- Now flush the query
SQL> exec DBMS_SHARED_POOL.PURGE ('C000007067F39FF0, 4000666812', 'C');
Note : For RAC, same need to be executed on all the nodes .
3 sql_id 의 바인드변수 값 조회[편집]
SELECT
sql_id,
b. LAST_CAPTURED,
t.sql_text sql_text,
b.HASH_VALUE,
b.name bind_name,
b.value_string bind_value
FROM
gv$sql t
JOIN
gv$sql_bind_capture b using (sql_id)
WHERE
b.value_string is not null
AND
sql_id='&sqlid'
/
4 현재 트랜잭션 조회[편집]
col name format a10
col username format a8
col osuser format a8
col start_time format a17
col status format a12
tti 'Active transactions'
select s.sid,username,t.start_time, r.name, t.used_ublk "USED BLKS",
decode(t.space, 'YES', 'SPACE TX',
decode(t.recursive, 'YES', 'RECURSIVE TX',
decode(t.noundo, 'YES', 'NO UNDO TX', t.status)
)) status
from sys.v_$transaction t, sys.v_$rollname r, sys.v_$session s
where t.xidusn = r.usn
and t.ses_addr = s.saddr
/