如何更改自动统计信息收集任务

首页    知识库    典型案例    如何更改自动统计信息收集任务

YashanDB内置了定时任GATHER_STATS_JOB,默认每日凌 2:00 开始收集全库的统计信息,包括统计信息缺失或者统计信息已经失效的对象的收集。

 

在某些场景可能出现收集过程花费时间较长现象,可通过调整收集参数,加快收集过程。

1删除系统默认收集任务

EXEC DBMS_SCHEDULER.DROP_JOB('GATHER_STATS_JOB');

2重新创建统计信息收集任务

EXEC DBMS_SCHEDULER.CREATE_JOB(

     'GATHER_STATS_JOB',

     'PLSQL_BLOCK',

     'begin DBMS_STATS.GATHER_DATABASE_STATS(''GATHER AUTO'', 0.1, 1, ''FOR ALL COLUMNS SIZE AUTO'', ''GLOBAL'', TRUE, TRUE); end;',

     0,

  cast(TRUNC(SYSDATE+1) + 2/24 as timestamp),

     'SYSDATE + 1',

     NULL,

     'DEFAULT_JOB_CLASS',

     TRUE,

     FALSE,

     'automatic optimizer statistics collection'

);

主要更GATHER_DATABASE_STATS235个参数,分别表示:采样率、并行度、分区表收集策(ALL-收集表和分区GLOBAL-只收集表,在分区表数据量巨大且分区数多的情况下影响收集任务完成时间

并行度是单个收集任务内部的并行度,非表之间的并行度,因此全库收集是串行)

 

3手工运行任务

EXEC DBMS_SCHEDULER.RUN_JOB('GATHER_STATS_JOB');

4查看表统计信息收集时间

SELECT last_analyzed, owner, table_name FROM dba_tab_statistics ORDER BY 1 desc;

 

 

浏览量:0