% 해당 명령어는 SYSTEM User가 가지고 있는 Table의 통계정보를 생성한지 180일 이전와 통계정보가 생성이 안되어 있는 Table을 출력 하는 쿼리입니다.


select OWNER,TABLE_NAME,TO_CHAR(LAST_ANALYZED,’YYYY-MM-DD hh24:mi:ss’)
from dba_tables
where OWNER=’SYS’
and (LAST_ANALYZED < sysdate – 180 or LAST_ANALYZED is null)
order by LAST_ANALYZED ;


% 위의 정보를 확인 하고, 아래의 쿼리를 통하여 Table의 통계정보를 생성하는 쿼리를 뽑아 낼수 있습니다.

set pages 5000
set line 500
set feedback off
set head off
spool table_analyze.sql
select ‘EXEC DBMS_STATS.GATHER_TABLE_STATS(”’||OWNER||”’,”’||TABLE_NAME||””||’,estimate_percent =>30, degree =>1);’
from dba_tables
where OWNER=’SYS’
and (LAST_ANALYZED < sysdate – 180 or LAST_ANALYZED is null)
order by LAST_ANALYZED ;
spool off


 

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다