close

 

 

 

建立procedure  利用游標掃描user_tables,再執行統計分析

********************************

create or replace procedure pro01
is
table_name varchar2(10);
cursor cur1 is
select table_name from user_tables;
begin 
open cur1;
loop
fetch cur1 into table_name;
exit when cur1%NOTFOUND;
dbms_stats.gather_table_stats('user1',table_name);
dbms_output.put_line('susess'||table_name);
end loop;
close cur1;
end;

**************************

 

 

透過SCHEDULER包來建立定期統計更新(時間為每周晚上11點執行,今天晚上11點開始)

 

***************************

select * from user_scheduler_jobs;
select * from user_scheduler_PROGRAMs;
select * from user_scheduler_SCHEDULEs;


BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name => 'hr_program',
program_action => 'pro01',
program_type => 'stored_procedure',
enabled => TRUE);
END;
/

BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE (
schedule_name => 'MySchedule3',
start_date => trunc(sysdate)+23/24,    --今天晚上11點開始
repeat_interval => 'FREQ=weekly; INTERVAL=1',  --一週一次
comments => 'a week');
END;
/

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'hr.ex3',
program_name => 'hr_program',
schedule_name => 'MySchedule3',
enabled => true);
END;
/

*****************************

 

exec dbms_scheduler.disable('hr.ex3');
exec dbms_scheduler.enable('hr.ex3');

arrow
arrow
    全站熱搜

    to52016 發表在 痞客邦 留言(0) 人氣()