본문 바로가기
728x90

DBMS_STATS10

[ORACLE] USER_TAB_COL_STATISTICS 뷰로 컬럼 통계 최적화 전략 세우기 1. USER_TAB_COL_STATISTICS란?USER_TAB_COL_STATISTICS는 Oracle에서 사용자 테이블에 포함된 컬럼별 통계 정보를 보여주는 데이터 딕셔너리 뷰입니다.이 뷰는 SQL 옵티마이저가 실행 계획을 수립할 때 참조하는 중요 지표들을 포함하며, 성능 튜닝 및 통계 품질 점검에 활용됩니다.2. 통계 정보의 필요성실행 계획 최적화: 통계에 기반한 비용 기반 옵티마이저(CBO)가 최적 경로를 선택병목 진단: 컬럼의 NULL 비율, 고유값 개수 등을 통해 인덱스 또는 풀스캔 여부 판단자동 통계 수집: Oracle은 기본적으로 자동 통계 수집 기능을 제공 (DBMS_STATS 사용)3. 주요 컬럼 설명컬럼명설명TABLE_NAME컬럼이 속한 테이블 이름COLUMN_NAME통계 정보가 저.. 2025. 8. 8.
[ORACLE] USER_SNAPSHOT_LOGS 뷰의 의미와 실전 활용 가이드 1. USER_SNAPSHOT_LOGS란?USER_SNAPSHOT_LOGS는 Oracle 데이터베이스에서 DBMS_STATS 패키지를 통해 수집된 통계 정보의 히스토리를 저장하는 뷰입니다. 이는 특히 DBA나 데이터 분석 담당자에게, 데이터 수집 작업이 언제 수행되었고 어떤 테이블에 영향을 주었는지에 대한 추적이 가능하도록 도와줍니다. 이 뷰는 USER_ 접두사가 붙은 뷰이므로, 현재 접속한 사용자 소유의 객체만을 보여주며, 시스템 전체의 정보를 보기 위해선 DBA_SNAPSHOT_LOGS나 ALL_SNAPSHOT_LOGS를 사용할 수 있습니다.2. 주요 컬럼 설명컬럼명설명TABLE_NAME통계 정보가 수집된 대상 테이블 이름START_TIME수집 작업 시작 시각END_TIME수집 작업 종료 시각STAT.. 2025. 8. 7.
[ORACLE] USER_HISTOGRAMS 완벽 분석 : 옵티마이저의 판단을 지배하는 통계 구조 1. USER_HISTOGRAMS란 무엇인가?USER_HISTOGRAMS는 Oracle 데이터베이스에서 사용자가 소유한 테이블의 컬럼에 대한 히스토그램 정보를 제공하는 데이터 딕셔너리 뷰입니다. 이 뷰는 Oracle 옵티마이저가 SQL 실행 계획을 최적화할 때 컬럼 값의 분포도를 파악하는 데 핵심적으로 사용됩니다. 히스토그램은 단순한 평균값이나 최소/최대 값만으로는 파악할 수 없는 데이터의 실제 분포를 반영하여, 특정 조건에 대한 필터링 효과(Cardinality Estimation)를 정밀하게 계산하는 데 결정적인 역할을 합니다.2. 히스토그램이 필요한 이유예를 들어, GENDER 컬럼에 'M'과 'F'만 존재한다고 해도, 전체 90%가 'M'이라면 이 분포를 인지한 옵티마이저는 더 효율적인 인덱스 스.. 2025. 7. 30.
[ORACLE] USER_PART_HISTOGRAMS : 파티션 히스토그램 분석과 실전 활용 전략 Oracle 데이터베이스는 정교한 쿼리 옵티마이저를 통해 실행 계획을 수립하고, 이 과정에서 통계 정보는 핵심적인 역할을 합니다. 특히 대용량 테이블이 파티션되어 있는 경우, 파티션별 컬럼 분포를 분석하는 히스토그램 정보는 매우 중요한 요소가 됩니다. 본 글에서는 Oracle의 USER_PART_HISTOGRAMS 뷰를 활용하여 파티션 단위의 히스토그램 데이터를 어떻게 해석하고 실무에서 성능 최적화에 활용할 수 있는지를 상세히 소개합니다.1. USER_PART_HISTOGRAMS란 무엇인가?USER_PART_HISTOGRAMS는 사용자 소유의 파티션 테이블에 대해 수집된 히스토그램 통계 정보를 제공하는 Oracle 데이터 딕셔너리 뷰입니다. 각 파티션 별로 히스토그램 정보를 구분하여 보여주기 때문에, 특.. 2025. 7. 19.
728x90