MARS



analyze table, index Oracle

현재 테이블들의 Analyze 상태

select table_name, num_rows, to_char(last_analyzed, 'yyyymmdd') from user_tables;


현재 인덱스들의 Analyze 상태

select index_name, num_rows, to_char(last_analyzed, 'yyyymmdd') from user_indexes;


Analyze 실행

analyze index index_name compute statistics;

analyze table table_name compute statistics;


전체 실행은 상태 확인후 실행한다.


실행시 Lock 걸렸을때 해제후 실행


테이블 lock 상태 확인

SELECT stattype_locked FROM dba_tab_statistics WHERE table_name = 'dept' and owner = 'scott';


lock 

exec dbms_stats.lock_table_stats('scott', 'dept');


unlock

exec dbms_stats.lock_table_stats('scott', 'dept');


Analyze는 3개월에 한번정도 해주는게 오라클 권고사항


Index 제대로 안타고 엄한거 사용할때 통계정보를 활용


1 2 3 4 5 6 7 8 9 10 다음