대용량 데이터베이스솔루션 1 (2009년)
ANALYZE(통계정보 생성) 0 0 99,999+

by 구루비스터디 ANALYZE 통계정보 생성 [2009.04.29]


제4장 시스템 진단과 튜닝(통계정보 생성)

4.5.1. 목적

  • Cost based optimizer의 비용계산
  • 각 Object의 구조 검증
  • Chain 생성 여부 확인을 통한 시스템저장공간 관리

4.5.2. 사용방법

4.5.2.1. ANALYZE

ANALYZEobject(TABLE, INDEX, CLUSTER..)
operationCOMPUTE정확한 통계값 제공, 전체 테이블을 ACCESS 하여 수집 계산하여 가장 많은 시간이 소요된다.
ESTIMATEData Dictionary와 데이터 견본으로 산정
DELETE모든 통계정보 삭제
STATICSVALIDATE STRUCTURE오브젝트 구조 검증
LIST CHANED ROWSTABLE, CLUSTER의 체인 로우 확인 및 보정
FOR TABLE FOR ALL...컬럼 히스토그램 정보 생성

4.5.2.2. DBMS_STATS

  • 통계 테이블의 생성 및 삭제
    • Analyze 구문은 datadictionary의 정보를 지우고 새로이 통계정보를 갱신하는 단점을 보완하기 위해 DBMS_STATS에서는 CREATE_STAT_TABLE, DROP_STAT_TABLE를 지원하고 있다
    • 통계 테이블 생성

 DBMS_STATS.CREATE_STAT_TABLE(
 ownname VARCHAR2,
 stattab VARCHAR2,
 tblspace VARCHAR2 DEFAULT NULL);
 
    • 통계 테이블 삭제

 DBMS_STATS.DROP_STAT_TABLE(
 ownname VARCHAR2,
 stattab VARCHAR2 );
 
  • 옵티마이저 용 통계 정보 생성
    • 프로시저를 사용하여 특정 범위의 통계정보를 옵티마이저 용으로 생성 할 수 있다.
  • 통계정보의 이동
    • IMPORT: USER의 통계테이블=>DATA DICTIONARY

IMPORT_COLUMN_STATS
IMPORT_INDEX_STATS
IMPORT_SYSTEM_STATS
IMPORT_TABLE_STATS
IMPORT_SCHEMA_STATS
IMPORT_DATABASE_STATS
 
    • EXPORT: DATA DICTIONARY=>USER의 통계테이블

EXPORT_COLUMN_STATS
EXPORT_INDEX_STATS
EXPORT_SYSTEM_STATS
EXPORT_TABLE_STATS
EXPORT_SCHEMA_STATS
EXPORT_DATABASE_STATS
 

4.5.3. DataDictionary

USER_TABLES총 로우의 수
총 블록의 수
비어 있는 블록에 쓰여질 수 있는 빈 공간의 평균
체인이 발생된 로우의 수
로우의 평균 길이
USER_COLUMNSDistinct한 값의 수
히스토그램 정보
USER_INDEXES인덱스의 Depth
Leaf block의 개수
Distinct Key의 수
Leaf Blocks/Key의 평균
Data Block/key의 평균
Clustering Factor
가장 큰 Key의 값(compute지정시)
가장 작은 Key의 값(compute지정시)
USER_CLUSTERCluster Key당 길이의 평균

4.5.4. 실행사항

  • 주기적인 ANALYZE작업 수행
  • 총 로우 수가 많은 테이블은 작업주기를 길게 한다
  • 해당 오브젝트와 연관있는 모든 오브젝트들을 동시에 작업한다. 프로시저로 작업을 수행한다.
  • 테이블을 재생성하거나 새로 클러스트링한 경우 ANALYZE한다.
  • 인덱스를 추가 혹은 재생성한 경우 ANALYZE한다.
  • SQL이나 배치 Job을 통해 다량의 데이터를 입력한 경우 ANALYZE한다.

문서에 대하여

"구루비 데이터베이스 스터디모임" 에서 2009년에 "대용량 데이터베이스 솔루션 1" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/2474

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입