Oracle 11g自动分析


很长一段时间没有写日志了,甚是惭愧啊!

最近在工作中也慢慢总结了一些知识点,在此记录一下:

这篇文章我要说的是关于Oracle 11g的自动分析。在11g中,自动分析跟10g或者以前的版本有明显区别,查询的方式不一样。在10g中,优化统计信息的收集是通过scheduler job来自动完成的,dba可以通过dbms_scheduler package的enable procedure与disable procedure来启动与关闭,在11g中,oracle提供了全新的package dbms_auto_task_admin来完成统计信息的收集工作。最直观的方法还是通过OEM查看调度中心,里面可以看到有哪些调度。

oracle的自动分析,默认是每天晚上10:00到第二天早上6:00以及周六全天运行,对于某些应用的系统,如果晚上和周末也并不是空闲时候,那么自动分析功能也许会影响业务系统的性能,我们的系统前端时间就是每天晚上22:30左右以及有时的周六严重受影响,后来我关掉自动分析后,业务系统有很明显改善,在以前那些时段几乎一样正常工作。

至于关闭11g 自动分析的方法,可以通过oem关闭,也可以通过plsql关闭,通过oem关闭的方法我就不说了,我下面主要说下通过plsql关闭的方法:

BEGIN

DBMS_AUTO_TASK_ADMIN.DISABLE(

client_name => 'auto optimizer stats collection',

operation => NULL,

window_name => NULL);

END;

/

自动分析每次运行的时间很长,所以要查看它运行的状态和job名,按照之前的10g的方法是查询不到的。因为每次通过自动分析产出的过程名都不一样,都是类似于 '"SYS"."ORA$AT_SA_SPC_SY_7644"'这样的,另外跟自动分析一起运行的调度还有一个auto space advisor 这个也是可以关闭的。关闭的方法跟上面一样,只需修改下名称即可。

相关内容