Web_developing/Oracle 2008/09/03 20:22
오라클을 통해 작업할 시
insert시점에서 정상적으로 인덱싱이 되지 않는 경우가 발생한다.
특히 결합인덱스를 많이 사용하고 있는 경우 발생될 확률이 높다.
이런경우 오라클의 Analyzed를 통해서 해결이 가능하고
어느정도의 실행속도를 향상 시킬 수있다.
(실제 오라클사에서도 3개월에 한번씩은 Analyze를 실행하라 권고하고 있다.)
[Analyzed 확인 방법]
select table_name, num_rows, to_char(last_analyzed, 'yyyymmdd') from user_tablesselect index_name, num_rows, to_char(last_analyzed, 'yyyymmdd') from user_indexesex) select table_name, num_rows, to_char(last_analyzed, 'yyyymmdd') from user_tables;TABLE_NAME NUM_ROWS TO_CHAR(
------------------------------ ---------- --------
ABS_TYPE 38 20040101ANNIVERS 183 20040101
APPRFLDRHISTORY 570 20040101
APPRFOLDER 16885 20040101
APPRFOLDER_ERR 3670 20040101
APPRFORM 359 20040101
.
.
.
USR_INFO_ADMIN 0 20040101
VAR_DEPT_INFO 0 20040101
VIEW_TYPE 0 20040101
WASTEBOX 0 20040101
ZIP_CODE 44195 20040101252 rows selected.※ 참고 : desc user_tables 에서 보통 num_rows 로도 확인 가능[특정 Table만 Analyze 하는 방법]analyze table document compute statisticsex) DOCUMENT Table 만 Analyzeanalyze index xpkdocbox compute statisticsex) XPKDOCBOX Index 만 Analyze[전체 Table Analyze 하는 간단한 방법]1. vi analyze_all.sql
select 'analyze table || table_name || estimate statistics;' from user_tables2. @analyze_all.sql3. set heading off
set echo off
set feedback off
set pagesize 300 (line 이 300 미만일 경우)
spool analyze_table.sql
/
spool off4. vi analyze_table.sql
필요없는 Line 제거 및 정리5. @analyze_table.sql[전체 Index Analyze 하는 간단한 방법]1. vi analyze_all.sql
select 'analyze index || index_name || estimate statistics;' from user_indexes2. @analyze_all.sql3. set heading off
set echo off
set feedback off
set pagesize 300 (line 이 300 미만일 경우)
spool analyze_index.sql
/
spool off4. vi analyze_index.sql
필요없는 Line 제거 및 정리5. @analyze_index.sql
이 글에는 트랙백을 보낼 수 없습니다
0