BEGIN
FOR cur_rec IN (SELECT distinct table_name
FROM dba_tables) LOOP
BEGIN
EXECUTE IMMEDIATE 'ANALYZE TABLE '|| cur_rec.table_name ||' COMPUTE STATISTICS' ;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END LOOP;
FOR cur_rec IN (SELECT distinct index_name
FROM dba_indexes) LOOP
BEGIN
EXECUTE IMMEDIATE 'ANALYZE INDEX '|| cur_rec.index_name ||' COMPUTE STATISTICS' ;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END LOOP;
END;
/
BEGIN
DBMS_SCHEDULER.create_job (
job_name => 'analyze_full',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN analyzefull; END;',
start_date => '01-APR-12 02:00.00.00 AM ASIA/CALCUTTA',
repeat_interval => 'FREQ=WEEKLY; BYDAY=FRI,SAT,SUN; BYHOUR=02; BYMINUTE=01;',
end_date => NULL,
enabled => TRUE,
comments => 'Analyze all tables indexes');
END;
/
No comments:
Post a Comment