카테고리 없음

[책] Practical OWI in Oracle 10g

끄적끄적 2009. 2. 18. 11:41


 ppt형식으로 되어있는데, 생각보다 내용설명이 간결하면서 이해하기 쉽게 되어있다.

 - RAC환경에서 주로 발생하는 gc cr/current 류의 wait event 는 주로 Global Cache 동기화(Cache Fusion)와 관련하여 발생
   gc 는 read시, current는 변경시 발생


 - Sequence 의 nocache : nextval 호출시마다 Dictionary 변경필요함.
   cf) RAC의 경우 cache를 주면 cache를 소진할 동안은 상호 통신이 필요없다. 단 ordered 속성을 주면 SV락을 통한 동기화가 필요하다. 특별한 필요가 없으면 cache와 noorder 속성으로 만들자.

 - db file scattered read 이벤트관련(full scan)
   : Insert, Delete 가 빈번한 interface성, temp성 테이블의 경우 delete 이후 통계정보가 생성되었다면 full scan이 발생할 수 있다.(주의)

 - latch: cache buffers chains 이벤트
  : 주로 hot block이나 bad SQL에 의해 동일 블록에 대한 접근이 동시에 일어날때 발생
   cf) Bad SQL의 문제일 경우 parallel query 로 변경하는것도 검토필요하다. parallel query의 경우 SGA를 거치지 않기 때문에 버퍼캐쉬 경합 자체가 없다.(parallel query실행시 더티버퍼를 디스크에 쓰도록 Segement 체크포인트가 수행됨으로 성능문제 고려)

 - 오라클의 physical I/O
   : OS상에서의 캐쉬, 스토리지 캐쉬가 있기 때문에 모두가 디스크 I/O 라고 보기는 힘들다.

 -  Keep 버퍼풀 사용하기
     1) DB_KEEP_CACHE_SIZE = 352321536 또는 alter system set DB_KEEP_CACHE_SIZE = 300M;
     2) 인덱스를 keep 버퍼에 올리기
         alter index schema.index_name storage(buffer_pool keep);

  - 다이렉트 로그 인서트 ( insert /*+ append */ into t1 select * from t2)
    : high water 마크 이후부터 insert 작업을 함에 따라 테이블에 X모드의 TM락을 획득하고 작업함.
      (insert, update, delete 동시 실행 못함)

        



 






반응형