ANALYZE 명령어
ANALYZE 명령어는 옵티마이저에서 비용기반 방식에 사용할 통계 데이터를 모아 주기 위해 사용되는 튜닝 도구로 테이블과 인덱스에 대한 통계정보를 수집한다.
analyze 명령어가 수행될 때마다 수집되는 정보는 다음과 같다.
종류 | 수집 정보 |
---|---|
TABLE | 테이블의 행 수, 사용된 블록 수, 한번도 사용되지 않은 불럭 수, 사용 가능한 공간의 평균, 변경된 행 수, 컬럼당 distinct value의 수, 컬럼당 두 번째로 가장 작은 값, 컬럼당 두 번째로 가장 큰 값 |
INDEX | 인덱스 레벨, 레벨 불럭 수, distinct key 수, 키당 leaf 블럭 수의 평균, 키당 데이터 블럭 수의 평균, clustering factor, 최소 키 값, 최대 키 값 |
저장된 통계자료는 데이터 사전 뷰를 사용하여 확인할 수 있다.
• USER_INDEXES, ALL_INDEXES, DBA_INDEXES • USER_TABLES, ALL_TABLES, DBA_TABLES • USER_TAB_COLUMNS, ALL_TAB_COLUMNS, DBA_TAB_COLUMNS예를 들어, 테이블에 대한 통계 정보를 수집하기 위해서는 다음과 같이 입력하면 된다.
ANALYZE TABLE 테이블명 COMPUTE STATISTICS; ANALYZE TABLE 테이블명 ESTIMATE STATISTICS;ANALYZE 명령어는 통계자료뿐만 아니라 DB 객체에 대한 유효성을 검사하는 기능을 제공한다. 이 기능을 사용하기 위해서는 VALIDATE STRUCTURE 옵션을 사용하고 테이블, 클러스터, 인덱스의 이상을 알 수 있다
ANALYZE TABLE 테이블명 VALIDATE STRUCTURE [CASCADE];검사하려는 테이블과 관련된 모든 테이블을 검사하려면 CASCADE 옵션을 사용한다.
【예제】
SQL> analyze table emp validate structure cascade; Table analyzed. SQL> analyze table emp compute statistics; Table analyzed. SQL> analyze table emp estimate statistics; Table analyzed. SQL>
'DataBase > Oracle' 카테고리의 다른 글
[펌]인덱스의 컬럼 선정 및 고려사항 (0) | 2008.10.06 |
---|---|
[펌]ANALYZE ? (0) | 2008.10.06 |
DBMS_STATS 패키지 (0) | 2008.10.06 |
HINT관련설명 (0) | 2008.10.06 |
일수구하는쿼리... (0) | 2008.09.30 |