ITPub博客

首页 > 数据库 > Oracle > Oracle自动收集统计信息JOB失败解决

Oracle自动收集统计信息JOB失败解决

原创 Oracle 作者:qiuyb 时间:2013-01-10 10:25:00 0 删除 编辑
Oracle自动收集统计信息JOB总是失败,原因大都因为数据量较大,在预计的时间窗口内统计信息未收集完毕。[@more@]1、查看JOB运行状态

SELECT LOG_ID, JOB_NAME, STATUS, ADDITIONAL_INFO
FROM DBA_SCHEDULER_JOB_LOG
WHERE JOB_NAME = 'GATHER_STATS_JOB'
ORDER BY 1

ADDITIONAL_INFO原因基本为:REASON="Stop job called because associated window was closed"

2、查看下dbms_stats默认的参数设定

SELECT SNAME AS PARAMETER, NVL(SPARE4, SVAL1) AS DEFAULT_VALUE
FROM SYS.OPTSTAT_HIST_CONTROL$

3、用如下命令可以调整一下参数设定

SQL> execute dbms_stats.set_param(pname => 'CASCADE', pval =>'TRUE');

eg:
SQL> execute dbms_stats.set_param(pname => 'DEGREE', pval =>2);
SQL> execute dbms_stats.set_param(pname => 'ESTIMATE_PERCENT', pval =>2);


4、其它说明
GATHER_STATS_JOB默认ESTIMATE_PERCENT是AUTO,由ORACLE自动选取大小,在实际中这个选取的基本是100%,如果数据量大,在规定的时间窗口自然收集不完。经过上面的参数调整实际观测可以很好解决问题。

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

请登录后发表评论 登录
全部评论
  • 博文量
    75
  • 访问量
    667851