태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

dbms_stats.auto_invalidate에 대한 새로운 사실...

오라클 2008.02.03 11:17
통계 수집 과정에서 dbms_stats.auto_invalidate 파라미터를 사용하면(10g 부터는 기본값) 통계 수집에 의한 Object Invalidation을 오라클이 자동으로 판단하게끔 된다.

지금까지 알고 있기로는 _optimizer_invalidation_period 파라미터(기본값은 18000초, 5시간) 이후에 Query가 실행되는 시점에 Object Invalidation이 이루어지는 것으로 이해했는데 이번에 이것이 잘못된 것이라는 것을 알게 되었다.

이 파라미터의 정확한 작동 방식은 다음과 같다.

- 이 값이 5시간이면 1초 ~ 18000초 사이에 Random하게 관련 Object의 Invalidation을 결정한다.
- 가령 특정 테이블의 통계 정보를 참조하는 SQL 문장이 총 100개가 있다면 이 100개가 다섯 시간에 걸쳐 랜덤하게 골고루 Invalidation되는 알고리즘을 사용한다.

이렇게 함으로써 특정 시점에 관련된 SQL 문장이 한꺼번에 Hard Parse되는 것을 피할 수 있는 것이다.
하지만, 특정 쿼리가 정확하게 언제 최신 통계 정보를 반영할 지를 알 수 없다는 것은 여전히 단점이라고 할 수 있겠다.

자세한 내용은 여기 참조...

http://wiki.ex-em.com/index.php/OPTIMIZER_INVALIDATION_PERIOD
신고
Trackback 0 : Comment 0

Write a comment

티스토리 툴바