v$sysmetric_history;
최근 1시간의 Database에서 사용할 수 있는 모든 시스템 Metric을 표시한다.
v$filemetric_history;
최근의 파일의 read / write time 및 물리적 블록 읽기의 시간이 기록된 metric 정보
dba_hist_sessmetric_history;
여러 중요 세션 Metrics에 대한 기록 표시 및 v$sysmetric_history 뷰에 대한 샘플(스냅샷)을 포함합니다.
SGA 가 작으면
1) 메모리 경합
2) I/O
3) CPU
1. Shared pool
1) Library cache
커서 보유량 감소
하드 파스 증가 -> CPU 사용량 증가
Latch : shared pool 사용량 증가
2) dictionary cache
dictionary row 보유량 감소
디스크 I/O 증가
2. Buffer cache
free buffer 적음
ckpt 빈도 높아짐 I/O 증가
cache hit 감소 I/O 증가
3. redo log buffer
latch redo allocation
latch redo copy
latch redo write
allocation해서 없으면 write잡고 내려씀
이것 역시 메모리 경합
CBC
CBLC LRU main 모든 buffer
LRU aux free
LRUW main dirty
LRUW aux 내려쓰는중인 dirty
parse
1) hash value
2) library cache
3s check row cache
latch : row cache object
miss? latch: shared pool -> row cache lock
공간 없으면 ? LRU 기준 덮어씀
I/O
3) miss?
latch : shared pool
가장 적절한 크기의 free chunk search
없으면 free chunk를 쪼개서 사용
없으면 LRU 기준 덮어씀
없으면? SGA가 작은것, 재사용을 못함 중복된 SQL
4) cursor 만들고 optimizing row source generation
plan genarator를 오라클이 사용할 수 없기에 row source generation해서
실행파일 형태도 만들어야 한다 hard parse -> CPU
buffer cache 프리 버퍼 찾고 데이터 블록 찾고 LRU 리스트 관리하고 더퍼 버퍼 클리닝하고
버킷 번호를 찾을때 파일넘버 블록넘버를 가지고 찾음 1+437 mod 4 =2 넣는다
desc x$bh
hash latch address HLADDR
해시에서 블록을 찾고 버킷 래치하고 헤더 찾고 찾으면 블록 읽고 못찾으면 디스크에서 가져온다
emp table 한 블록에 있으면 멀 하던 그 블록에 집중됨 그거를 그쪽에 많이 발생하니까
메모리 좀 더 쓰고 그거를 나눈다음에 올려라 핫블록 현상 감소
X$BH.TCH 터치 카운트 컬럼
async 기능 dbwr
orcl@SYSTEM> create table tab1 (
2 key varchar2(10),
3 fld1 varchar2(10),
4 fld2 number(10) );
Table created.
orcl@SYSTEM> insert into tab1 values('A','AAB',111);
1 row created.
Elapsed: 00:00:00.04
orcl@SYSTEM> insert into tab1 values('B','AAC',123);
1 row created.
Elapsed: 00:00:00.00
orcl@SYSTEM> insert into tab1 values('C','ABA',222);
1 row created.
Elapsed: 00:00:00.00
orcl@SYSTEM> insert into tab1 values('D','ABB',233);
1 row created.
Elapsed: 00:00:00.00
orcl@SYSTEM> insert into tab1 values('E','ABC',143);
1 row created.
orcl@SYSTEM> create table tab2 (
2 key varchar2(10),
3 col1 number(10),
4 col2 varchar2(10) );
Table created.
orcl@SYSTEM> insert into tab2 values('A',10,'AA');
1 row created.
Elapsed: 00:00:00.04
orcl@SYSTEM> insert into tab2 values('B',10,'AB');
1 row created.
Elapsed: 00:00:00.00
orcl@SYSTEM> insert into tab2 values('C',10,'AC');
1 row created.
SELECT X.KEY, X.FLD1, X.FLD2, Y.KEY, Y.COL1, Y.COL2
FROM TAB1 X, TAB2 Y
WHERE X.KEY = Y.KEY(+)
AND X.FLD1 > 'AAA'
5 AND Y.COL1 = 10 ;
KEY FLD1 FLD2 KEY COL1 COL2
---------- ---------- ---------- ---------- ---------- ----------
A AAB 111 A 10 AA
B AAC 123 B 10 AB
C ABA 222 C 10 AC
SELECT X.KEY, X.FLD1, X.FLD2, Y.KEY, Y.COL1, Y.COL2
FROM TAB1 X, TAB2 Y
WHERE X.KEY = Y.KEY(+)
AND X.FLD1 > 'AAA'
5 AND (Y.COL1 = 10 OR Y.COL1 IS NULL) ;
KEY FLD1 FLD2 KEY COL1 COL2
---------- ---------- ---------- ---------- ---------- ----------
A AAB 111 A 10 AA
B AAC 123 B 10 AB
C ABA 222 C 10 AC
E ABC 143
D ABB 233
'스터디북' 카테고리의 다른 글
<11/22> 상심 (0) | 2015.11.22 |
---|---|
<11/20> Blind Love (0) | 2015.11.20 |
[11/18] DB Downgrade (0) | 2015.11.18 |
<11/18> Luv (0) | 2015.11.18 |
<11/17> Remember (0) | 2015.11.17 |