ITPub博客

首页 > 数据库 > Oracle > 在Oracle中创建定时任务以定期分析方案对象---dbms_stats.gather_schema_stats

在Oracle中创建定时任务以定期分析方案对象---dbms_stats.gather_schema_stats

原创 Oracle 作者:garydba 时间:2012-06-05 17:00:24 0 删除 编辑

--每周六23:00执行分析 create by Rainny Zhong
--这个脚本须以sys用户执行,执行前先看说明
create or replace procedure STATS_SCHEMA
is
begin
dbms_stats.gather_schema_stats(ownname=> 'LINMARKUTA816' , cascade=> TRUE);
-- dbms_stats.gather_schema_stats(ownname=> 'XPC816UPGRADEDEV' , cascade=> TRUE);
-- dbms_stats.gather_schema_stats(ownname=> 'XPC816UPGRADEQA' , cascade=> TRUE);
--用户可在此加入或替代想要定期分析的schema
end STATS_SCHEMA;
/
--分析表和索引

/*
begin
dbms_stats.gather_table_stats(ownname=> 'XPC821PERFORMANCEQA',
tabname=> 'ACL_ASSIGNED_HISTORY',
partname=> NULL);
end;
/

begin
dbms_stats.gather_index_stats(ownname=> 'XPC821PERFORMANCEQA',
indname=> 'ACL_OBJECTPERMISSION_IDX_003',
partname=> NULL);
end;
/
*/

--每周六23:00执行分析任务 create by Rainny
--这个脚本须以sys用户执行,执行前先看下面的说明
DECLARE
v_job number;
begin
dbms_job.submit(job => v_job,
what => 'STATS_SCHEMA;',
next_date => TRUNC(SYSDATE)+23/24,
interval => 'TRUNC(NEXT_DAY(SYSDATE,''星期六''))+23/24');--如果用户的字符集不是中文,
--则要将星期六换成对应的英文如:SATURDAY
commit;
end;
/

/*DECLARE
v_job number;
begin
dbms_job.submit(job => v_job,
what => 'STATS_SCHEMA;',
next_date => TRUNC(SYSDATE)+23/24,
interval => 'TRUNC(NEXT_DAY(SYSDATE,''SATURDAY''))+23/24');
commit;
end;*/

--删除统计信息
--请以sys帐号登陆,执行这个脚本:

begin
dbms_stats.delete_schema_stats(ownname=> 'LINMARKUTA816');
--用户在此加入要删除统计信息的schema
end;
/

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25133597/viewspace-1058430/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle 定期分析表
请登录后发表评论 登录
全部评论

注册时间:2010-12-24

  • 博文量
    22
  • 访问量
    116129