tu분석스크립트
작성자 관리자 작성시간 2006-11-15 20:47:04
 

SQL> select event,count(*) from v$session_wait
  2  group by event order by count(*);

EVENT                                                              COUNT(*)
---------------------------------------------------------------- ----------
SQL*Net message to client                                                1
async disk IO                                                            1
buffer busy global CR                                                    1
buffer busy waits                                                        1
ges remote message                                                        1
pmon timer                                                                1
wakeup time manager                                                      1
smon timer                                                                1
db file sequential read                                                  2
gcs remote message                                                        2
rdbms ipc message                                                        10

EVENT                                                              COUNT(*)
---------------------------------------------------------------- ----------
SQL*Net message from client                                            591

12 rows selected.


select sid,event,p1,p2,p3,seconds_in_wait from v$session_wait
where event not like '%SQL*Net%'
and event not like '%timer%'
and event not like '%message%'
order by event;


** 과도한 logical read를 수행하는 SQL문을 V$SQLAREA 에서 검색해줌.

**

** 원인 => 1) 인덱스 컬럼에 distinct한 값이 적은, 부적절한 인덱스의 사용. (대체로 인덱스를 지워야 할 경우)

** 2) 최적화 되지 않은 SQL 문장

*/

select buffer_gets, sql_text from v$sqlarea

where buffer_gets > 200000

order by buffer_gets desc;



과도한 disk read를 하는 SQL문을 찾아주는 스크립트


select disk_reads, sql_text from v$sqlarea

where disk_reads > 10000

order by disk_reads desc;


SGA의 shared pool 의 현재 사용도를 출력해주는 SQL



/*

** shared_pool_size의 현재 사용 현황을 보여줌. <박제용>

**

** shared_pool_size의 현재의 사용현황을 보여준다.

** 이 데이터를 주기적으로 보관하여 분석한다.

*/

col value for 999,999,999,999 heading "Shared Pool Size"

col bytes for 999,999,999,999 heading "Free Bytes"

select to_number(v$parameter.value) value, v$sgastat.bytes,

(v$sgastat.bytes/v$parameter.value)*100 "Percent Free"

from v$sgastat, v$parameter

where v$sgastat.name = 'free memory'

and v$ parameter .name = ‘shared_pool_size;


목록 | 입력 | 수정 | 답변 | 삭제