1. 실행중인 SQL 지연시간 체크 및 세션 체크
SELECT A.MESSAGE
, A.START_TIME
, A.LAST_UPDATE_TIME
, A.TIME_REMAINING
, ROUND((SOFAR/TOTALWORK)*100,0)||'%' AS PROGESS
, B.SQL_TEXT
FROM V$SESSION_LONGOPS A
, V$SQL B
WHERE A.SQL_ADDRESS=B.ADDRESS
AND ROWNUM<=10
AND A.TIME_REMAINING>0;
SELECT ROWNUM NO
, PARSING_SCHEMA_NAME
, to_char(ELAPSED_TIME/(1000000 * decode(executions,null,1,0,1,executions)),999999.99 ) 평균실행시간
, executions 실행횟수
, SQL_TEXT 쿼리
, SQL_FULLTEXT
FROM V$SQL
WHERE LAST_ACTIVE_TIME > SYSDATE-(1/24*2)
AND ELAPSED_TIME >= 1 * 1000000 * decode(executions,null,1,0,1,executions)
ORDER BY 평균실행시간 DESC, 실행횟수 DESC;
2. Oracle sessions & process limit와 현재 사용수치 찾는 쿼리
select resource_name, current_utilization, max_utilization, limit_value
from v$resource_limit
where resource_name in ('sessions', 'processes');
select
substr(a.spid,1,9) pid,
substr(b.sid,1,5) sid,
substr(b.serial#,1,5) ser#,
substr(b.machine,1,6) box,
substr(b.username,1,10) username,
substr(b.osuser,1,8) os_user, -- 접속자의 OS 사용자 정보
substr(b.program,1,30) program, -- 접속 프로그램
from v$session b, v$process a
where
b.paddr = a.addr
and type='USER'order by spid;
3. 현재 활성화된 SQL및 Process ID찾기
SELECT
a.sid, -- SID
a.serial#, -- 시리얼번호
a.status, -- 상태정보
a.process, -- 프로세스정보
a.username, -- 유저
a.osuser, -- 접속자의 OS 사용자 정보
b.sql_text, -- sql
c.program -- 접속 프로그램
FROM
v$session a,
v$sqlarea b,
v$process c
WHERE
a.sql_hash_value=b.hash_value AND a.sql_address=b.address AND a.paddr=c.addr AND a.status='ACTIVE';
4. 현재 시간 기점으로 총 세션과 Active 세션 찾기
select to_char(sysdate, 'YYYY/MM/DD hh24:mi:ss') "Time",
count(*) "Total Sessions",
count(decode(status, 'ACTIVE', 1) ) "Active Sessions"
from v$session;;
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
대용량 테이블 인덱스 생성 및 통계 수집, 통계 10% Sampling (0) | 2022.01.24 |
---|---|
Single Oracle DB일 때 listener.ora 파일 설정, 리스너 설정 (0) | 2022.01.19 |
weblogic timeout 설정 (0) | 2022.01.19 |
AUTOTRACE 사용법 (0) | 2022.01.13 |
ASM으로 설치된 ORACLE DBMS 테이블스페이스 관리 (0) | 2022.01.12 |