본문 바로가기
728x90

쿼리튜닝2

[ORACLE] ALL_HISTOGRAMS 완전 정복 : 옵티마이저를 움직이는 히스토그램 이해와 실전 튜닝 ALL_HISTOGRAMS는 컬럼 값의 분포를 버킷(bucket) 단위로 저장해 옵티마이저(Optimizer)의 선택도(Selectivity) 추정에 직접적인 근거를 제공하는 핵심 딕셔너리 뷰입니다. 스큐(Skew) 여부, 상·하위 빈도값, 경계값 변화폭을 정밀하게 파악해 조인 순서, 접근 경로, 인덱스 사용 여부 등 실행계획의 품질을 가르는 지점에서 결정적인 인사이트를 줍니다.왜 ALL_HISTOGRAMS를 봐야 하는가?실제 분포 파악: 평균치 기반 카디널리티 착시를 방지(특히 편향 데이터).계획 재현·비교: 통계 스냅샷 간 버킷 경계 변화로 계획 변화 원인 추적.힌트 최소화: 통계만 바로잡아도 힌트 없는 안정적 실행계획 유도.핵심 개념 요약버킷(bucket): 값 구간을 뜻합니다. 각 버킷의 끝점(E.. 2025. 10. 10.
[ORACLE] USER_IND_EXPRESSIONS : 함수 기반 인덱스 설계의 비밀 무기 Oracle 데이터베이스의 인덱스 설계는 성능 최적화의 핵심 중 하나입니다. 하지만 표준 컬럼 인덱스만으로는 복잡한 조건을 만족시키기 어렵습니다. 이때 강력한 대안이 되는 것이 함수 기반 인덱스(Function-based Index)입니다. 이러한 인덱스에 포함된 표현식(Expressions)을 관리하고 분석할 수 있도록 도와주는 뷰가 바로 USER_IND_EXPRESSIONS입니다. 본 글에서는 USER_IND_EXPRESSIONS 뷰의 구조와 실제 활용법, 그리고 성능을 혁신적으로 향상시키는 설계 전략을 깊이 있게 소개합니다.USER_IND_EXPRESSIONS란 무엇인가?USER_IND_EXPRESSIONS는 사용자가 소유한 함수 기반 인덱스에 포함된 표현식 정보를 담고 있는 Oracle 데이터 딕.. 2025. 7. 15.
728x90