● Statistics
◎ Optimizer Statistics
- Data
- System
◎ Performance Statistics
- Activity => Data 1. V$ 누적 -> statspack, AWR
2. Metric : 단위 시간당 통계
3. Sampled Data(ASH)
4. Trace file
v$statname : activity 관련 지표 전체를 보여주는 뷰
v$sysstat : 인스턴스 시작 이래로 있었던 activity의 누적
v$sesstat : 현재 연결중인 각 세션의 activity 누적
v$service_stats : 서비스 이름별 time model Activity의 누적
v$mystat : 내 세션의 Activity의 누적
- Waits : v$event_name : 발생가능한 wait의 이름들
v$system_event, : 인스턴스 시작이래로 발생한 적인 있는 wait누적
v$session_event : 현재 세션의 wait누적
v$service_event : 서비스별 wait누적
v$session_wait : 현재 세션의 지금 wait의 누적
- Others :
● Basic Tools
◎ EM Page
◎ Alert log
: LOG_CHECKPOINTS_TO_ALERT = true 튜닝시에 도움이 되는 정보가 더 남는다.
◎ Trace file + event setting
- server process
◎ Dynamic Performance View
- v$fixed_table을 질의하면 전체 목록을 볼 수 있다.
- 읽기 일관성을 지원하지 않음.
- 관련 파라미터 : statistics_level
Wait Events
- Free Buffer Wait
- Latch Free
- Buffer Busy Waits : 동시에 여러 프로세스가 동일 블록에 대해 Insert를 하거나 Update를 하는 경우
- Db File Sequential Read
- Db File Scattered Read : 멀티블록 I/O를 한번 수행할 때마다 물리적인 I/O가 끝나기를 기다리게 되며
- Db File Parallel Write : DBWR이 더티 블록를 기록하기 위한 I/O 요청을 보낸 후 요청이 끝나기를 기다리는 동안 발생하는 이벤트
- Undo Segment Tx Slot : 트랜잭션 슬롯을 얻지 못해 이용 가능한 슬롯이 생기기를 기다릴 때 발생하는 대기 이벤트
- Undo Segment Extension : 현재 undo공간이 없어서 늘리고 있는 중일 때 나타나는 지표
- log file switch completion : 서버 프로세스가 LGWR에 의해 로그 파일 스위치가 끝날 때까지 기다릴 때 발생하는 대기 이벤트
parameter1, parameter2, parameter3 의 내용이 있다면 v$session_wait의 p1, p2, p3에 나오는 값이 의미하는 내용이다.
Time Model
: 어느 컴포넌트가 문제인가를 판단할 수 있는 유일한 척도가 time이다.
DB Time = 실제로 cpu를 쓰는 시간 + wait시간.
ADDM이 문제를 해결하는데 적용되어 있는 기법
관련 dynamic views : v$sys_time_model, v$sess_time_model
기타 참고사항
- 10046 event
- 10053 event : optimizer의 결정 과정을 볼 수 있다.
- DBA_* : 읽기 일관성을 보장.
- undo : MVCC(MultiVersion Concurrency Control)를 지원하기 위한 매커니즘
- oradebug
◎ Optimizer Statistics
- Data
- System
◎ Performance Statistics
- Activity => Data 1. V$ 누적 -> statspack, AWR
2. Metric : 단위 시간당 통계
3. Sampled Data(ASH)
4. Trace file
v$statname : activity 관련 지표 전체를 보여주는 뷰
v$sysstat : 인스턴스 시작 이래로 있었던 activity의 누적
v$sesstat : 현재 연결중인 각 세션의 activity 누적
v$service_stats : 서비스 이름별 time model Activity의 누적
v$mystat : 내 세션의 Activity의 누적
- Waits : v$event_name : 발생가능한 wait의 이름들
v$system_event, : 인스턴스 시작이래로 발생한 적인 있는 wait누적
v$session_event : 현재 세션의 wait누적
v$service_event : 서비스별 wait누적
v$session_wait : 현재 세션의 지금 wait의 누적
- Others :
● Basic Tools
◎ EM Page
◎ Alert log
: LOG_CHECKPOINTS_TO_ALERT = true 튜닝시에 도움이 되는 정보가 더 남는다.
◎ Trace file + event setting
- server process
OS] conn system/oracle
SQL> alter session set sql_trace = true; -- trace파일을 남기도록 sql_trace파일을 설정
SQL> select *
from scott.emp
where empno = 7788;
SQL> ed trace
-------파일에 들어갈 쿼리-------
select
d.value||'/'||p.value||'_ora_'||s.spid||decode(t.value,null,'','_'||t.value)||'.trc'
as trace_file_name
from
(
select value
from v$parameter
where name = 'instance_name'
) p,
(
select value
from v$parameter
where name = 'user_dump_dest'
) d,
(select value
from v$parameter
where name = 'tracefile_identifier'
) t,
(
select spid
from v$process
where addr = (
select paddr
from v$session
where sid = (select sid from v$mystat where rownum = 1)
)
) s
;
SQL> @trace -- trace파일을 찾는 쿼리 실행
SQL> alter session set sql_trace = true; -- trace파일을 남기도록 sql_trace파일을 설정
SQL> select *
from scott.emp
where empno = 7788;
SQL> ed trace
-------파일에 들어갈 쿼리-------
select
d.value||'/'||p.value||'_ora_'||s.spid||decode(t.value,null,'','_'||t.value)||'.trc'
as trace_file_name
from
(
select value
from v$parameter
where name = 'instance_name'
) p,
(
select value
from v$parameter
where name = 'user_dump_dest'
) d,
(select value
from v$parameter
where name = 'tracefile_identifier'
) t,
(
select spid
from v$process
where addr = (
select paddr
from v$session
where sid = (select sid from v$mystat where rownum = 1)
)
) s
;
SQL> @trace -- trace파일을 찾는 쿼리 실행
◎ Dynamic Performance View
- v$fixed_table을 질의하면 전체 목록을 볼 수 있다.
- 읽기 일관성을 지원하지 않음.
- 관련 파라미터 : statistics_level
Wait Events
- Free Buffer Wait
- Latch Free
- Buffer Busy Waits : 동시에 여러 프로세스가 동일 블록에 대해 Insert를 하거나 Update를 하는 경우
- Db File Sequential Read
- Db File Scattered Read : 멀티블록 I/O를 한번 수행할 때마다 물리적인 I/O가 끝나기를 기다리게 되며
- Db File Parallel Write : DBWR이 더티 블록를 기록하기 위한 I/O 요청을 보낸 후 요청이 끝나기를 기다리는 동안 발생하는 이벤트
- Undo Segment Tx Slot : 트랜잭션 슬롯을 얻지 못해 이용 가능한 슬롯이 생기기를 기다릴 때 발생하는 대기 이벤트
- Undo Segment Extension : 현재 undo공간이 없어서 늘리고 있는 중일 때 나타나는 지표
- log file switch completion : 서버 프로세스가 LGWR에 의해 로그 파일 스위치가 끝날 때까지 기다릴 때 발생하는 대기 이벤트
SQL> select * from v$event_name;
SQL> select * from v$session_wait;
SQL> select * from v$session_wait;
parameter1, parameter2, parameter3 의 내용이 있다면 v$session_wait의 p1, p2, p3에 나오는 값이 의미하는 내용이다.
Time Model
: 어느 컴포넌트가 문제인가를 판단할 수 있는 유일한 척도가 time이다.
DB Time = 실제로 cpu를 쓰는 시간 + wait시간.
ADDM이 문제를 해결하는데 적용되어 있는 기법
관련 dynamic views : v$sys_time_model, v$sess_time_model
기타 참고사항
- 10046 event
- 10053 event : optimizer의 결정 과정을 볼 수 있다.
- DBA_* : 읽기 일관성을 보장.
- undo : MVCC(MultiVersion Concurrency Control)를 지원하기 위한 매커니즘
- oradebug
'Oracle > Tuning' 카테고리의 다른 글
Metrics, Alerts and Metric Baselines (0) | 2010.01.14 |
---|---|
[펌]SQL*TRACE와 TKPROF (0) | 2010.01.13 |
Tuning Overview (0) | 2010.01.12 |
Automatic Performance Management (0) | 2009.12.29 |
Dynamic Performance View의 이름 / 설명 (0) | 2009.12.26 |