문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
study:oracle:adv_owi_10g:oracle_internal_owi [2009/07/30 09:22] deathguy |
study:oracle:adv_owi_10g:oracle_internal_owi [2009/08/12 19:16] deathguy 삭제 |
||
---|---|---|---|
줄 17: | 줄 17: | ||
65536 | 65536 | ||
</ | </ | ||
+ | * **cache buffer chains latch** => hash 함수로 얻은 값으로 해당 데이터가 어떠한 bucket에 있는가를 확인할때 발생되는 latch | ||
+ | {{: | ||
==== Working Set ==== | ==== Working Set ==== | ||
줄 34: | 줄 36: | ||
* Working Set 개수는 Cache buffer lru latch 개수에 의해 결정( 하나의 working set을 하나의 lru latch가 관리함 )되며 X$KCBWDS( Kerner Cache Buffer Working sets Descriptors )를 조회 하면 확인 가능 하다 | * Working Set 개수는 Cache buffer lru latch 개수에 의해 결정( 하나의 working set을 하나의 lru latch가 관리함 )되며 X$KCBWDS( Kerner Cache Buffer Working sets Descriptors )를 조회 하면 확인 가능 하다 | ||
* LRU , LRUW List를 탐색 하고자 하는 프로세스는 반드시 cache buffer lru chain latch를 획득 해야 함. | * LRU , LRUW List를 탐색 하고자 하는 프로세스는 반드시 cache buffer lru chain latch를 획득 해야 함. | ||
+ | * **cache buffer chains lru latch** | ||
줄 63: | 줄 66: | ||
- 기록된 블럭은 LRU 보조 리스트로 옮겨짐 | - 기록된 블럭은 LRU 보조 리스트로 옮겨짐 | ||
- free block를 찾으면 buffer lock을 exclusive하게 획득 후 데이터 파일로 부터 block를 load | - free block를 찾으면 buffer lock을 exclusive하게 획득 후 데이터 파일로 부터 block를 load | ||
+ | |||
+ | ===== Buffer Cache Dump ===== | ||
+ | - 버퍼의 구조를 가장 명확하게 알 수 있는 방법은 버퍼 캐시 덤프를 이용하는것 \\ <code sql> | ||
+ | SQL> alter session set evnets ' | ||
+ | OR | ||
+ | SQL> oradebug dump buffers 1 | ||
+ | </ | ||
+ | * 참고로 oradebug 를 추천한다 \\ | ||
+ | - X$BH 뷰에서 확인가능하다 | ||
+ | * 눈여겨 봐야될 컬럼은 다음과 같다 | ||
+ | |||
+ | ^ 컬럼 ^ 내용 ^ | ||
+ | ^ HLADDR | 해당 버퍼를 관장하는 래치의 주소 V$LATCH_CHILDREN.ADDR 과 조인해서 원하는 래치정보를 얻을수 있다 | | ||
+ | ^ TS# | 블록이 속한 테이블스페이스 번호 V$TABLESPACE.TS# | ||
+ | ^ DBARFIL | DBA 중 파일번호 | | ||
+ | ^ DBABLK | DBA 중 블록번호 | | ||
+ | ^ CLASS | 블록 클래스 | | ||
+ | ^ STATE | 버퍼의 상태 | | ||
+ | ^ 0 | FREE no valid block image | | ||
+ | ^ 1 | XCUR a current mode block, exclusive to this instance | | ||
+ | ^ 2 | SCUR a current mode block, shared with other instances(RAC환경에서만 쓰임) | | ||
+ | ^ 3 | CR a consistent read (stale) block image | | ||
+ | ^ 4 | READ buffer is reserved for a block being read from disk | | ||
+ | ^ 5 | MREC a block in media recovery mode | | ||
+ | ^ 6 | IREC a block in instance (crash) recovery mode | | ||
+ | ^ 8 | PI past image(RAC환경에서만 쓰임) | | ||
+ | ^ TCH | Touch Count | | ||
+ |