본문 바로가기

DataBase/Oracle

ANALYZE 명령어

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