신문지한장

[SQL] 하드파싱 많이 발생한 쿼리 조회 (ORA-4031 발생시 확인 쿼리) 본문

Oracle/sql&script

[SQL] 하드파싱 많이 발생한 쿼리 조회 (ORA-4031 발생시 확인 쿼리)

신문지한장 2024. 8. 9. 14:47

 

1. 하드파싱 많이 발생한 쿼리 조회

select substr(sql_text, 1, 30) "SQL",
       count(*) cnt,
       sum(executions) "TotExecs",
       sum(sharable_mem) mem,
       min(first_load_time) start_time,
       max(first_load_time) end_time,
       max(sql_text) full_sql,
       max(hash_value) hash
from v$sqlarea
where FIRST_LOAD_TIME between TO_CHAR(SYSDATE-24/24,'YYYY-MM-DD/HH24:MI:SS') and TO_CHAR(SYSDATE,'YYYY-MM-DD/HH24:MI:SS') -- 한시간 이내
group by substr(sql_text, 1, 30)
having count(*) > 30 -- 비슷한 문장이 30개 이상
order by 4 desc;

 

2. 메모리 조회

select POOL, name, bytes ,bytes/1024/1024 "Size in MB" from v$sgastat where name='free memory';

 

3. subpool 확인

select nam.ksppinm NAME, val.KSPPSTVL VALUE from x$ksppi nam, x$ksppsv val where nam.indx = val.indx and nam.ksppinm like '%kghdsidx%' order by 1 ;