一个同事说,Oracle的分区表对应的统计信息都为空。有一个多月的分区都是这样,之前的是正常的。让我帮忙看看。先手动的分析一下表。
命令执行完毕后,用TOAD查看,改分区的统计信息生成了。那问题就出在自动统计上面。
完成后,执行JOB。统计信息出来了。
analyze table auth_info partition (P_080901) compute statistics; |
为什么会失效呢?首先要找到Oralce是怎么样实现自动统计的。其实Oralce有个存储过程专门来做这件事。然后再以schedule的方式调用,AUTO_SPACE_ADVISOR_JOB这个JOB就是。手工执行一下JOB,发现运行的很快,查看记录
运行没有成功。为了查找原因,将此JOB调用的program,拿出来单独执行。
报错:temp file is Empty!
查找一下,果然tempfile为空~ 检查alert.log ,原来这个库有重新建立过控制文件,建完控制文件没有将temp 表空间恢复 。
给temp表空间加入tempfile
atert tablespace temp add tempfile '/dbdata/oradata/temp01.dbf' reuse; |
顺便看一下Oracle自动执行JOB的schedules,周一到周五 22:00、周六 00:00 。周日不分析 。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8858072/viewspace-442643/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8858072/viewspace-442643/