[sql] 인덱스 통계와 테이블 통계의 차이점은 무엇인가요?

인덱스 통계

인덱스 통계는 데이터베이스의 인덱스에 대한 통계를 제공합니다. 이 통계는 인덱스 키의 카디널리티(고유한 값의 수)나 데이터 분포에 관한 정보를 포함하고 있어, 쿼리 옵티마이저가 적절한 실행 계획을 결정하는 데 도움을 줍니다.

-- 인덱스 통계 생성
ANALYZE INDEX <index_name>;

테이블 통계

반면 테이블 통계는 테이블 전체 레코드에 대한 통계를 제공합니다. 이는 레코드 수, 칼럼의 분포, NULL 값의 비율 등을 포함하고 있어, 옵티마이저가 쿼리 실행 계획을 수립할 때 유용합니다.

-- 테이블 통계 생성
ANALYZE TABLE <table_name>;

인덱스 통계는 인덱스의 성능에 영향을 미치고, 테이블 통계는 전체 쿼리의 성능에 영향을 미칩니다. 이 두 가지 통계는 데이터베이스 최적화를 위해 함께 사용되며, 적절한 통계를 유지함으로써 쿼리의 실행 속도를 향상시킬 수 있습니다.

자세한 내용은 Oracle documentation를 참고하세요.