ANALYZE(통계정보 생성) :: 오라클 실습[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

오라클 실습
[1]
등록일:2009-06-14 14:12:19 (0%)
작성자:
제목:ANALYZE(통계정보 생성)
* 대용량 데이터베이스 솔루션 참고

ANALYZE ?  

  - ANALYZE는 인덱스, 테이블, 클러스터의 통계정보를 생성 합니다.

  - ANALYZE가 생성한 통계정보들은 비용기준(Cost-based)의 옵티마이저가 가장 효율적인
    실행계획을  수립하기 위해 최소비용을 계산할 때 사용 됩니다.

  - 각 오브젝트의 구조를 확인하는 것과 체인(Chain) 생성 여부를 확인할 수 있으므로 시스템의
     저장공간 관리를 도와줍니다.  

[문법]




 object-clause

  TABLE, INDEX, CLUSTER중에서 해당하는 오브젝트를 기술하고 처리할
  오브젝트 명을 기술 합니다.

 operation

  operation 옵션에는 다음 3가지중 한가지 기능을 선택할 수 있습니다.

  COMPUTE
       - 각각의 값들을 정확하게 계산 합니다.
       - 가장 정확한 통계를 얻을 수 있지만 처리 속도가 가장 느립니다.

  ESTIMATE
       - 자료사전의 값과 데이터 견본을 가지고 검사해서 통계를 예상합니다.
       - COMPUTE보다 덜 정확하지만 처리속도가 훨씬 빠릅니다.

  DELETE
       - 테이블의 모든 통계 정보를 삭제 합니다.



ANALYZE는 다음과 같은 통계정보를 생성하여 데이터 사전에 저장 합니다.

 - 테이블 :  총 로우의수,  총 블럭의 수, 비어있는 블럭에 쓰여질 수 있는 빈 공간의 평군,
                체인이 발생된 로우의 수, 로우의 평균 길이

 - 인덱스 : 인덱스의 깊이(Depth), Leaf block의 개수, Distinct Key의 수,
               Leaf Blocks/Key의 평균, Data blocks/key의 평균,
               Clustering Factor, 가장 큰 key 값, 가장 작은 key 값

 - 컬럼 : Distinct한 값의 수, 히스토그램 정보

 - 클러스터 : Cluster Key당 길이의 평균

 


2. 정보수집 

 ☞  정보수집

    - 주기적인 ANALYZE 작업을 수행 시켜 주어야 합니다.

    - 테이블을 재생성 하거나, 새로 클러스터링을 한 경우, 인덱스를 추가하거나 재생성한 경우,
      다량의 데이터를 SQL이나 배치 애플리케이션을 통해 작업한 경우 ANALYZE를
     수행 시켜 주는 것이 좋습니다.

    - 사용자는  USER_TABLES, USER_COLUMNS, USER_INDEXS, USER_CLUSTER 등의
      자료사전 뷰를 통해 정보를 확인할 수 있습니다  

    -  테이블을 ANALYZE 시킨다면 거기에 따르는 인덱스들도 같이 실시하는 것이 좋습니다.


 ☞ 테이블 정보수집 예제

SQL> ANALYZE TABLE  emp COMPUTE STATISTICS ;


 ☞  새로운 정보를 구하기 전에 기존 정보를 삭제할 때 이용 합니다.

SQL> ANALYZE TABLE emp DELETE STATISTICS;


 ☞ 특정 column에 대한 data 분포

SQL>ANALYZE TABLE emp COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;
 

 


3. 통계 정보의 확인


 ☞  통계 정보의 확인

SQL>SELECT num_rows, blocks, empty_blocks, avg_space, chain_cnt, avg_row_len,                   sample_size, last_analyzed
       FROM USER_TABLES
       WHERE table_name=’CMS_CATEGORY’;



SQL>SELECT num_distinct, density, low_value, high_value, last_analyzed,column_name
        FROM USER_TAB_COL_STATISTICS
       WHERE table_name=’CMS_CATEGORY’
  ================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^
[본문링크] ANALYZE(통계정보 생성)
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=31534
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.