oracle 10g自动收集统计信息
从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。
这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。调用DBMS_ER_DATABASE_STATS_JOB_PROC收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计信息。
可以通过以下查询这个JOB的运行情况:
select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB'
其实同在10点运行的Job还有一个AUTO_SPACE_ADVISOR_JOB:
SQL> select JOB_NAME,LAST_START_DATE from dba_scheduler_jobs;
JOB_NAME LAST_START_DATE
------------------------------ --------------------------------------
AUTO_SPACE_ADVISOR_JOB 04-DEC-07 269 PM +08:00
GATHER_STATS_JOB 04-DEC-07 152 PM +08:00
FGR$AUTOPURGE_JOB
PURGE_LOG 05-DEC-07 059 AM PRC
然而这个自动化功能已经影响了很多系统的正常运行,晚上10点对于大部分生产系统也并非空闲时段。
而自动分析可能导致极为严重的闩锁竞争,进而可能导致数据库Hang或者Crash。
所以建议最好关闭这个自动统计信息收集功能:
exec DBMS_BLE('GATHER_STATS_JOB');
自动化永远而严重的隐患相伴随!
关闭及开启自动搜集功能,有两种方法,分别如下:
方法一:
exec dbms_ble('ER_STATS_JOB');
exec dbms_le('ER_STATS_JOB');
方法二:
alter system set "_optimizer_autostats_job"=false scope=spfile;
alter system set "_optimizer_autostats_job"=true scope=spfile;
Pfile可以直接修改初始化参数文件,重新启动数据库。
二、AWR默认通过MMON及MMNL进程来每小自动运行一次,为了节省空间,采集的数据在 7 天后自动清除。
快照频率和保留时间都可以由用户修改。要查看当前的设置,您可以使用下面的语句:
select snap_interval, retention
from dba_hist_wr_control;
SNAP_INTERVAL RETENTION
------------------- -------------------
+00000 01:00:00.0 +00007 00:00:00.0
这些 SQL 语句显示快照每小时采集一次,采集的数据保留 7 天。要修改设置—例如,快照时间间隔为 20 分钟,保留时间为两天—您可以发出以下命令。参数以分钟为单位。
begin
dbms_workload_fy_snapshot_settings (
interval => 20,
retention => 2*24*60
);end;
AWR 使用几个表来存储采集的统计数据,所有的表都存储在新的名称为 SYSAUX 的特定表空间中的 SYS 模式下,并且以 WRM$_* 和 WRH$_* 的`格式命名。前一种类型存储元数据信息(如检查的数据库和采集的快照),后一种类型保存实际采集的统计数据。(您可能已经猜到,H 代表“历史数据 (historical)”而 M 代表“元数据 (metadata)”。)在这些表上构建了几种带前缀 DBA_HIST_ 的视图,这些视图可以用来编写您自己的性能诊断工具。视图的名称直接与表相关;例如,视图 DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上构建的。
您的处理计划一般是有规律的,并且通常基于您对各种事件的了解和您处理它们的经验。现在设想相同的事情由一个引擎来完成,这个引擎采集量度并根据预先确定的逻辑来推出可能的计划。您的工作不就变得更轻松了吗? 现在在 Oracle Database 10g中推出的这个引擎称为自动数据库诊断监控程序 (ADDM)。为了作出决策,ADDM 使用了由 AWR 采集的数据。
在 AWR 进行的每一次快照采集之后,调用 ADDM 来检查量度并生成建议。因此,实际上您拥有了一个一天二十四小时工作的自动数据库管理员,它主动地分析数据并生成建议,从而把您解放出来,使您能够关注更具有战略意义的问题。
快照默认是自动采集的,但您也可以按需要采集它们。所有的 AWR 功能都在程序包 DBMS_WORKLOAD_REPOSITORY 中实施。要采集一次快照,只需发出下面的命令:
execute dbms_workload_te_snapshot它立即采集一次快照,快照被记录在表 WRM$_SNAPSHOT 中。采集的量度是针对 TYPICAL 级别的。如果您想采集更详细的统计数据,您可以在上面的过程中将参数 FLUSH_LEVEL 设置为 ALL。统计数据自动删除,但也可以通过调用过程 drop_snapshot_range() 来手动删除。
-
Oracle数据库无响应故障处理方式
Oracle数据库无响应故障,简单地讲就是数据库实例不能响应客户端发起的请求,客户端提交一个SQL后,就一直处于等待数据库实例返回结果的状态。更严重的现象是客户端根本不能连接到数据库,发起一个连接请求后,一直处于等待状态。Oracle数据库无响应故障怎么处理呢?下面...
-
关于Oracle碎片拾掇的解析
至于系统管理员也就是说,何以责任书网络稳固运作,何以增高数据库性能,使其愈加保险高效率,便显得尤为重要。作为影响数据库性能的一大要素--数据库碎片,应该唤起DBA的足够重视,及时发现并拾掇碎片就是DBA一项根本维护内容。一、碎片是何以发作的应生成一个数据库时,它...
-
2017年Oracle认证大全
Oracle认证是由Oracle公司,为能够满足对Oracle核心人士需求,Oracle公司颁布并实施的一项权威品的服务与支持。下面是小编整理的关于Oracle认证大全,欢迎大家参考!有的考生特意追求高版本的认证,比如就考11g的,不考10g,他们认为通过了11g的OCP,就是最高级的认证,其实这...
-
如何通过Oracle连接管理器控制数据库连接
为了更好的控制Oracle数据库的连接,Oracle提出了一个连接管理器的解决方案。连接管理器是Oracle开发的一个中间件解决方案,它提供了许多可缩放性的特性。Oralce连接管理器又是一个多用途的联网解决方案,可用于提升可伸缩性、提供多协议连通性以及安全网络访问控制...
相关文章
- Win10系统提示Officebackgroundtaskhandler.exe弹窗问题的解决方
- redhatlinux下安装oracle10g的教程
- 英语阅读例文:A garbage collector
- 中考英语阅读理解训练及答案:A garbage collector
- Oracle认证:Oracle内存结构研究-PGA篇
- 大学英语四级作文College Graduates Work
- Oracle认证:Win7下Oracle11g完全删除
- 英语作文:大学生村官 College Graduates Work as Village Offic
- Choice of large enterprises or small英语四级作文
- oracle10g关闭和打开自动收集统计信息的方法