본문 바로가기
728x90

카디널리티3

[ORACLE] ALL_HISTOGRAMS 완전 정복 : 옵티마이저를 움직이는 히스토그램 이해와 실전 튜닝 ALL_HISTOGRAMS는 컬럼 값의 분포를 버킷(bucket) 단위로 저장해 옵티마이저(Optimizer)의 선택도(Selectivity) 추정에 직접적인 근거를 제공하는 핵심 딕셔너리 뷰입니다. 스큐(Skew) 여부, 상·하위 빈도값, 경계값 변화폭을 정밀하게 파악해 조인 순서, 접근 경로, 인덱스 사용 여부 등 실행계획의 품질을 가르는 지점에서 결정적인 인사이트를 줍니다.왜 ALL_HISTOGRAMS를 봐야 하는가?실제 분포 파악: 평균치 기반 카디널리티 착시를 방지(특히 편향 데이터).계획 재현·비교: 통계 스냅샷 간 버킷 경계 변화로 계획 변화 원인 추적.힌트 최소화: 통계만 바로잡아도 힌트 없는 안정적 실행계획 유도.핵심 개념 요약버킷(bucket): 값 구간을 뜻합니다. 각 버킷의 끝점(E.. 2025. 10. 10.
[ORACLE] CARDINALITY 힌트 완벽 분석과 실전 활용 전략 Oracle 데이터베이스의 쿼리 성능을 결정짓는 핵심 요소 중 하나는 옵티마이저가 예측하는 카디널리티(Cardinality)입니다. 카디널리티는 특정 조건을 만족하는 예상 행(row) 수를 의미하며, 잘못된 카디널리티 추정은 비효율적인 실행 계획을 야기할 수 있습니다. CARDINALITY 힌트는 이러한 예측값을 사용자가 직접 지정하여 실행 계획을 세밀하게 제어할 수 있는 고급 힌트입니다. 이번 글에서는 CARDINALITY 힌트의 개념과 원리, 실전 활용 전략을 전문가의 시각으로 깊이 있게 분석합니다.CARDINALITY 힌트란?CARDINALITY 힌트는 Oracle 옵티마이저가 특정 서브쿼리나 인라인 뷰에 대해 예상 행 수를 사용자 정의 값으로 강제하도록 하는 힌트입니다. 이는 옵티마이저가 잘못된 .. 2025. 7. 9.
[ORACLE] OPT_ESTIMATE 힌트 완벽 분석과 실전 활용 전략 Oracle 데이터베이스에서 SQL 튜닝은 단순한 쿼리 작성의 범위를 넘어, 옵티마이저가 생성하는 실행 계획의 품질을 결정하는 핵심 작업입니다. OPT_ESTIMATE 힌트는 옵티마이저의 통계 기반 추정치를 조정하여 실행 계획을 직접 제어할 수 있도록 돕는 고급 힌트입니다. 이번 글에서는 OPT_ESTIMATE 힌트의 개념과 원리, 실전 활용 전략을 전문가의 시각으로 심층 분석합니다.OPT_ESTIMATE 힌트란?OPT_ESTIMATE 힌트는 옵티마이저의 비용 계산 과정에서 사용되는 카디널리티(Cardinality)와 셀렉티비티(Selectivity)를 조정할 수 있도록 설계된 힌트입니다. 즉, 특정 테이블이나 조인 연산에 대해 예상 행 수나 선택도를 사용자가 직접 지정할 수 있습니다. 이를 통해 옵티마.. 2025. 7. 9.
728x90