一、ORACLE10g自动收集统计信息--自动analyze
从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。
这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。调用DBMS_STATS.GATHER_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 10.00.00.692269 PM +08:00
GATHER_STATS_JOB 04-DEC-07 10.00.00.701152 PM +08:00
FGR$AUTOPURGE_JOB
PURGE_LOG 05-DEC-07 03.00.00.169059 AM PRC
然而这个自动化功能已经影响了很多系统的正常运行,晚上10点对于大部分生产系统也并非空闲时段。
而自动分析可能导致极为严重的闩锁竞争,进而可能导致数据库Hang或者Crash。
所以建议最好关闭这个自动统计信息收集功能:
exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
自动化永远而严重的隐患相伴随!
关闭及开启自动搜集功能,有两种方法,分别如下:
方法一:
exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');
exec dbms_scheduler.enable('SYS.GATHER_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_repository.modify_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_repository.create_snapshot它立即采集一次快照,快照被记录在表 WRM$_SNAPSHOT 中。采集的量度是针对 TYPICAL 级别的。如果您想采集更详细的统计数据,您可以在上面的过程中将参数 FLUSH_LEVEL 设置为 ALL。统计数据自动删除,但也可以通过调用过程 drop_snapshot_range() 来手动删除。
分享到:
相关推荐
如果在收集过程中维护窗口关闭,而统计信息未完全收集完毕,此时系统会有不同的应对策略。A选项表明收集工作会继续直到全部处理完毕,但事实并非如此;B选项提到作业被终止,统计信息恢复到作业开始之前的状态,这更...
通过`CREATE INDEX`创建索引,`ANALYZE TABLE`收集统计信息以优化执行计划。 5. **视图** 视图是虚拟表,基于一个或多个表的查询结果。它们可以简化复杂的查询,提供安全层,并允许用户以更简洁的方式访问数据。...
以上内容详细介绍了Oracle 10G数据库管理系统中的统计信息收集、实例恢复、备份策略、权限管理、表空间特性、主键约束、远程管理、数据库逻辑结构、服务器进程内存管理和审计功能等多个方面的知识。这些知识点对于...
Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...
- **Oracle 10g OEM图形化自定义对所有表、索引统计分析的自动化调度任务**: - 利用OEM的功能创建定时任务,定期对表和索引进行统计分析。 **6. 导出表、索引最新统计分析数据** - 将统计分析的结果导出为文件,...
- `sysstat`: 系统统计信息收集工具。 - `xscreensaver`: 屏幕保护程序。 - `libaio`: 异步I/O支持库。 2. **安装软件包**:通过`yum install`命令安装上述列出的所有软件包。例如,可以使用`yum install compat...
- **选项B**:AWR并不直接包含跟踪和日志信息,而是收集有关数据库性能和负载的信息。 #### 题目三:减少索引碎片化的方法 **题目内容**: 在观察索引统计信息时,发现索引高度碎片化,导致数据库性能下降。你会...
### Oracle数据库创建步骤详解 #### 一、Oracle数据库概述与创建背景 Oracle数据库是全球领先的数据库...以上就是关于Oracle10g数据库创建的全过程介绍,希望能够帮助读者更好地理解和掌握Oracle数据库的创建方法。
**题目背景:** 在Oracle 10g数据库中,您已经安排了一个作业在每周五下午5:00更新优化器统计信息。该作业已成功完成。为了确认统计信息已经被收集,您需要检查哪三项信息? **选项分析:** - **A. 平均行大小 ...
9. **表和索引的维护**:定期执行统计信息收集,确保Oracle能够准确地进行查询优化。同时,定期清理无用的数据,优化表和索引的物理结构,比如合并段、重建索引等。 10. **监控和诊断**:利用Oracle的AWR...
根据提供的文档信息,我们可以归纳出以下关键知识点,这些知识点主要围绕Oracle Database 11g的管理与维护: ### 一、ORA-01555: Snapshot Too Old 错误 **标题**: Oracle Database 11g: Administration I **描述*...
- 在Oracle 10g中启用索引的自动监控功能,以便更好地跟踪索引的状态和性能。 - **2.5 对用户所有表、索引进行统计分析**: - **查询EAS用户所有表、索引的最新统计分析时间**: - 定期更新表和索引的统计信息,...
Oracle的Automatic Workload Repository(简称AWR)是Oracle数据库中一个强大的性能监控工具,尤其在Oracle 11G版本中,它提供了周期性的数据库运行情况快照,用于收集和分析统计信息,帮助DBA(数据库管理员)识别...
它主要测试考生对于Oracle数据库11g版本的管理知识和技能,特别是对于数据库的安装、配置、维护以及故障排除的能力。考试内容覆盖了数据库的架构、备份与恢复、安全管理、性能优化等多个方面。 在描述中提到的考试...
Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...
6.2.3 收集执行计划统计信息 151 6.2.4 标识SQL语句以便以后取回计划 153 6.2.5 深入理解DBMS_XPLAN的细节 156 6.2.6 使用计划信息来解决问题 161 6.3 小结 169 第7章 高级分组 170 7.1 基本的GROUP BY用法 ...
Oracle AWR(Automatic Workload Repository)报告是Oracle数据库10g版本引入的一种强大的性能分析工具,用于自动收集和存储数据库的性能数据。该报告通过对比两次快照(snapshot)之间的统计信息,帮助管理员识别...