Library cache
▶ V$LIBRARYCACHE Table
- 가장 최근의 인스턴스 시작 이후 모든 Library cache actibity를 나타냄
- Library cache 행동을 감시
- 사용자 SYS 와 SELECT ANY TABLE 시스템 권한을 가진 사용자, 즉 SYSTEM과 같은 사용자만이 이용
NAMESPACE column : SQL 문장과 PL/SQL 블록들을 위한 Library cache actibity
('SQL AREA', 'TABLE/PROCEDURE', 'BODY', 'TRIGGER')
PINS : Library cache 내의 항목이 실행된 수
RELOADS : 실행 단계에서의 Library cache miss의 수
Library cache miss ratio :
라이브러리 캐시는 사용자가 요청한 질의 문장을 Server Process가 여러 단계를 거쳐 작업할 때 사용하는 작업 공간으로서 공유 SQL 영역과 개별 SQL 영역, PL/SQL 영역으로 나누어 볼 수 있다. Library cache의 가장 중요한 목적은 Library Cache 안에 저장된 Object를 가장 빠르게 찾고 저장하는 기법을 제공하는 것이다.
↘ Query ①
SQL> select sum(pins) "Executions", sum(reloads) "Cache misses while executing"
2 from v$librarycache;
Executions Cache misses while executing
---------- ----------------------------
1534122 24
↘ Query ②
SQL> select to_char(trunc(sum(reloads)/sum(pins) * 100, 5), 99.99999) ||
2 '% (less than 1%)' "Library cache miss ratio"
3 from v$librarycache;
Library cache miss ratio
-------------------------
.00156% (less than 1%)
- PINS column의 합은 SQL 문장, PL/SQL blocks, object 정의가 총 1,534,122번 실행하기 위해 access 되었음.
- Reloads의 합은 실행 횟수 중 24번의 실행이 Library cache의 대기 상태를 발생
- 총 PINS에서 총 reloads의 비율 : 0.00156% (물론 ①, ② 쿼리 시간이 틀려 오차 발생할 수 있음)
총 Reloads는 0에 가가워야 하며 Pins 에서 Reloads의 비율이 1% 이상이라면 Library cache miss를 줄여야 함.
SQL> select namespace name, gets, gethits,round(gethitratio*100,2) "GetHit Percentage",
2 Pins, pinhits, round(pinhitratio*100,2) "PinHit Percentage", reloads, invalidations
3 from v$librarycache
4 order by 1 ;
NAME GETS GETHITS GetHit Percentage PINS PINHITS
--------------- ---------- ---------- ----------------- ---------- ----------
PinHit Percentage RELOADS INVALIDATIONS
----------------- ---------- -------------
BODY 20 8 40 19 8
42.11 0 0
CLUSTER 558 550 98.57 434 424
97.7 0 0
INDEX 116392 116350 99.96 116361 116319
99.96 0 0
NAME GETS GETHITS GetHit Percentage PINS PINHITS
--------------- ---------- ---------- ----------------- ---------- ----------
PinHit Percentage RELOADS INVALIDATIONS
----------------- ---------- -------------
JAVA DATA 0 0 100 0 0
100 0 0
JAVA RESOURCE 0 0 100 0 0
100 0 0
JAVA SOURCE 0 0 100 0 0
100 0 0
NAME GETS GETHITS GetHit Percentage PINS PINHITS
--------------- ---------- ---------- ----------------- ---------- ----------
PinHit Percentage RELOADS INVALIDATIONS
----------------- ---------- -------------
OBJECT 0 0 100 0 0
100 0 0
PIPE 0 0 100 0 0
100 0 0
SQL AREA 343944 343502 99.87 1058533 1057735
99.92 24 1
NAME GETS GETHITS GetHit Percentage PINS PINHITS
--------------- ---------- ---------- ----------------- ---------- ----------
PinHit Percentage RELOADS INVALIDATIONS
----------------- ---------- -------------
TABLE/PROCEDURE 367737 367360 99.9 367952 367440
99.86 0 0
TRIGGER 24 21 87.5 24 21
87.5 0 0
11 rows selected.
'IT > Oracle' 카테고리의 다른 글
Unix 에서 Raw Device 사용법 (0) | 2008.04.16 |
---|---|
Oracle monitoring query (0) | 2008.04.03 |
Dictionary Cache (v$rowcache) (0) | 2008.04.03 |
Oracle architecture (0) | 2008.03.28 |
Oracle DB dictionary (0) | 2008.01.07 |