-----------------------------------------------------------------------------------------------------------------------
-- 현재 접속된 세션수
------------------------------------------------------------------------------------------------------------------------
SELECT inst_id, Count(*) total_cnt,
Count( DECODE( server, 'DEDICATED', 1, null)) dedicated_cnt,
Count( Decode (TYPE, 'BACKGROUND', 1, null)) back_cnt,
Count( DECODE( Status, 'ACTIVE', 1, NULL)) active_cnt
FROM GV$SESSION
group by inst_id;
------------------------------------------------------------------------------------------------------------------------
-- 실행 중 Session Transaction 확인
------------------------------------------------------------------------------------------------------------------------
/* Formatted on 2018/04/30 오전 10:26:28 (QP5 v5.287) */
SELECT s.inst_id,
s.username,
s.sid,
s.serial#,
p.spid,
s.module,
s.last_call_et,
s.sql_exec_start,
t.used_ublk,
t.used_urec,
s.osuser, --s.command,
s.event,
(SELECT object_name
FROM dba_objects
WHERE object_id = s.row_wait_obj#)
"object_name",
t.start_time,
-- q.sql_text,
--, t.start_scn
--,'alter system kill session '''||s.sid||', '||s.serial#||', @'||s.inst_id||''' immediate;' "kill"
s.prev_sql_id,
s.sql_id,
(select sql_text from gv$sqlstats where sql_id = s.sql_id and rownum <= 1) sql_text,
s.machine
FROM gv$session s, gv$process p, gv$transaction t
-- , v$sqlstats q
WHERE s.paddr = p.addr(+)
AND s.taddr = t.addr(+)
AND (s.status = 'ACTIVE' OR t.used_urec IS NOT NULL)
AND s.TYPE != 'BACKGROUND'
--and machine like 'ompwap%'
--and s.module like '%'
--AND LNNVL (osuser = '9000091')
AND s.username not in ('OGG','SYS')
AND s.inst_id = p.inst_id(+)
AND s.inst_id = t.inst_id(+)
-- AND s.sql_id = q.sql_id(+)
--AND s.sql_address = q.address(+)
--AND s.sql_hash_value = q.hash_value(+)
ORDER BY t.start_time, s.last_call_et DESC ;
select * from gv$sqlstats where sql_id in ('2qsy3txwtzgpp');
--ALTER SYSTEM KILL SESSION '4899,62440';
------------------------------------------------------------------------------------------------------------------------
-- v$session 대체해서 실시간 성능 이력 분석 (PLAN 포함됨)
------------------------------------------------------------------------------------------------------------------------
select sample_time,session_id,session_serial#,user_id,sql_id,
sql_plan_operation, sql_plan_options, -- 11g 이상
event,wait_time,time_waited, blocking_session, p1text,p1,p2text,p2,p3text,p3,
(SELECT object_name
FROM dba_objects
WHERE object_id = current_obj#) "object_name", MODULE,
(SELECT sql_text
FROM v$sqlarea a
WHERE a.sql_id = h.sql_id)
AS sql_text
from v$active_session_history h
where 1=1
-- and sample_time between to_date ('20201104 092500', 'yyyymmdd hh24miss') and to_date ('20201104 093000', 'yyyymmdd hh24miss')
and sample_time between sysdate-(interval '5' minute) and sysdate
-- (interval '5' [year|month|day|hour|minute|second])
and session_type <> 'BACKGROUND' ;
------------------------------------------------------------------------------------------------------------------------
-- 특정 시간대의 대기 이벤트 집계 (특정 시간대 어떤 SQL에 어떤 EVENT가 가장 많이 발생했는지 분석)
------------------------------------------------------------------------------------------------------------------------
select user_id,sql_id,event,count (*),sum (wait_time),sum (time_waited)
from v$active_session_history
where 1=1
and sample_time between to_date ('20201104 092500', 'yyyymmdd hh24miss') and to_date ('20201104 093000', 'yyyymmdd hh24miss')
-- and sample_time between sysdate-(interval '5' minute) and sysdate
and session_type <> 'BACKGROUND'
group by user_id, sql_id, event
order by count (*) desc ;
------------------------------------------------------------------------------------------------------------------------
-- 특정 구간동안의 ASH 요약 리포트
/* - SGA 크기, 샘플 수, 액티브 세션 수
- 대기 이벤트 정보(대기이벤트, 대기클래스, 대기시간정보)
- 대기 이벤트의 파라미터를 알 수 있어 어떤 자원에서 경합이 발생하는지 구체적 정보 파악 가능
- Top SQL에 대한 정보(명령 유형, 실행단계, 대기이벤트, Row Source등 정보 제공)를 제공
- Top Session 정보 */
------------------------------------------------------------------------------------------------------------------------
col db_id new_value db_id;
col inst_num new_value inst_num;
select dbid as db_id from v$database;
select instance_number as inst_num from v$instance;
select * from table(
dbms_workload_repository.ash_report_text(
:db_id, -- 2377999848
:inst_num,
sysdate - 10/24/60/60, -- 10초
sysdate
));
'ORACLE > 튜닝' 카테고리의 다른 글
실행중 SQL 확인 (SORT/GROUPBY/INDEX ) (0) | 2020.11.23 |
---|---|
특정 시간대 수행 퀴리 확인 (0) | 2020.11.23 |
[TRACE 11g] monitor hint 를 사용한 Plan 보기(v$sql_monitor, v$sql_plan_monitor) (0) | 2020.06.24 |
[TRACE 10g] gather_plan_statistics hint를 사용한 SQL trace (0) | 2020.06.24 |
SQL Trace file의 내용을 SQL 문장으로 분석 (0) | 2019.11.12 |