1)  先来看下oracle 10g中的自动统计任务的问题。 
从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');

2)oracle 11g的系统自动job 
   
SQL> select job_name,comments from dba_scheduler_jobs;

3)10g关闭自动收集job 
select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB' 
所以建议最好关闭自动统计信息收集功能: 
exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB'); 
启动自动统计信息收集功能 
exec DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');

手工收集统计信息: 
SQL> exec dbms_stats.gather_schema_stats('detail',options=>'gather stale',estimate_percent =>10);

--收集没有分析过的表的统计信息 
begin 
dbms_stats.gather_schema_stats(ownname=>scott,options=>'gather empty'); 
end; 
--重新分析修改量超过10%的表(这些修改包括插入、更新和删除) 
begin 
dbms_stats.gather_schema_stats(ownname=>scott,options=>'gather stale'); 
end;

4)11G关系自动收集job 
   对于11g版本的oracle 有三个自动维护定时任务。 
1 自动优化器统计收集:为所有方案对象收集陈旧的或缺少的统计数据,所收集的统计信息将被用来提高sql的执行的性能,任务名是“auto optimizer stats collection” 
2 自动分段顾问:标识数据库中的段是否有可以回收的空间,并以此信息统计为基础做出怎样整理段的碎片以节约空间。你也可以手动的执行此job来获取最新的建议信息,或者获取自动段advisor 不检测的但又可以回收的段的信息,任务名是“auto space advisor” 
3 自动SQL调整顾问:自动标识并尝试调整高负载的SQL,任务名是“sql tuning advisor” 
sys@RAC> select client_name ,status from DBA_AUTOTASK_CLIENT; 
CLIENT_NAME                                                      STATUS 
---------------------------------------------------------------- -------- 
auto optimizer stats collection                                  ENABLED 
auto space advisor                                               ENABLED 
sql tuning advisor                                               ENABLED 
管理自动维护的job 
在oracle 10g中这些job被分别创建并且以DBA_SCHEDULER_JOBS.JOB_NAME的名称出现 
然而在11g中则有所改变,通过视图DBA_AUTOTASK_WINDOW_CLIENTS可以查看他们一周七天的执行情况,包括 
时间窗口,下次执行时间,job的名称,健康检查 
sys@RAC> select * from DBA_AUTOTASK_WINDOW_CLIENTS; 
WINDOW_NAME        WINDOW_NEXT_TIME                   WINDO AUTOTASK OPTIMIZE SEGMENT_ADVISOR SQL_TUNE HEALTH_M 
------------------ ---------------------------------- ----- -------- -------- --------------- -------- -------- 
WEDNESDAY_WINDOW   28-SEP-11 10.00.00.000000 PM PRC   FALSE DISABLED ENABLED  ENABLED         ENABLED  DISABLED 
SATURDAY_WINDOW    01-OCT-11 06.00.00.000000 AM PRC   FALSE DISABLED ENABLED  ENABLED         ENABLED  DISABLED 
THURSDAY_WINDOW    29-SEP-11 10.00.00.000000 PM PRC   FALSE DISABLED ENABLED  ENABLED         ENABLED  DISABLED 
TUESDAY_WINDOW     27-SEP-11 10.00.00.000000 PM PRC   FALSE DISABLED ENABLED  ENABLED         ENABLED  DISABLED 
SUNDAY_WINDOW      02-OCT-11 06.00.00.000000 AM PRC   FALSE DISABLED ENABLED  ENABLED         ENABLED  DISABLED 
MONDAY_WINDOW      03-OCT-11 10.00.00.000000 PM PRC   FALSE DISABLED ENABLED  ENABLED         ENABLED  DISABLED 
FRIDAY_WINDOW      30-SEP-11 10.00.00.000000 PM PRC   FALSE DISABLED ENABLED  ENABLED         ENABLED  DISABLED 
7 rows selected.

DBMS_AUTO_TASK_ADMIN包的ENABLE和DISABLE存储过程能够实现关闭或者开启的三种job(不要任何参数): 
execute DBMS_AUTO_TASK_ADMIN.DISABLE; 
execute DBMS_AUTO_TASK_ADMIN.ENABLE;

关闭指定的job 
BEGIN 
  dbms_auto_task_admin.disable( 
  client_name => 'sql tuning advisor', 
  peration => NULL, 
  window_name => NULL); 
END;  

开启指定的job: 
BEGIN 
  dbms_auto_task_admin.enable( 
  client_name => 'sql tuning advisor', 
  peration => NULL, 
  window_name => NULL); 
END;  

关闭周三sql优化器顾问的执行窗口 
sys@RAC> BEGIN 
  2         dbms_auto_task_admin.disable( 
  3         client_name => 'sql tuning advisor', 
  4         peration => NULL, 
  5         window_name => 'MONDAY_WINDOW'); 
  6       END;  
  7      / 
PL/SQL procedure successfully completed. 
sys@RAC> select * from DBA_AUTOTASK_WINDOW_CLIENTS;

WINDOW_NAME        WINDOW_NEXT_TIME                   WINDO AUTOTASK OPTIMIZE SEGMENT_ADVISOR      SQL_TUNE HEALTH_M 
------------------ ---------------------------------- ----- -------- -------- -------------------- -------- -------- 
WEDNESDAY_WINDOW   28-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
SATURDAY_WINDOW    01-OCT-11 06.00.00.000000 AM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
THURSDAY_WINDOW    29-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
TUESDAY_WINDOW     27-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
SUNDAY_WINDOW      02-OCT-11 06.00.00.000000 AM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
MONDAY_WINDOW      03-OCT-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              DISABLED DISABLED 
FRIDAY_WINDOW      30-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
7 rows selected. 
关闭星期天的自动段顾问job的时间窗口: 
sys@RAC> BEGIN 
  2         dbms_auto_task_admin.disable( 
  3         client_name => 'auto space advisor', 
  4         peration => NULL, 
  5         window_name => 'SUNDAY_WINDOW'); 
  6       END;  
  7      / 
PL/SQL procedure successfully completed.

sys@RAC> select * from DBA_AUTOTASK_WINDOW_CLIENTS;

WINDOW_NAME        WINDOW_NEXT_TIME                   WINDO AUTOTASK OPTIMIZE SEGMENT_ADVISOR      SQL_TUNE HEALTH_M 
------------------ ---------------------------------- ----- -------- -------- -------------------- -------- -------- 
WEDNESDAY_WINDOW   28-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
SATURDAY_WINDOW    01-OCT-11 06.00.00.000000 AM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
THURSDAY_WINDOW    29-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
TUESDAY_WINDOW     27-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED 
SUNDAY_WINDOW      02-OCT-11 06.00.00.000000 AM PRC   FALSE ENABLED  ENABLED  DISABLED             ENABLED  DISABLED 
MONDAY_WINDOW      03-OCT-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              DISABLED DISABLED 
FRIDAY_WINDOW      30-SEP-11 10.00.00.000000 PM PRC   FALSE ENABLED  ENABLED  ENABLED              ENABLED  DISABLED

5) 11G关闭自动job 
SQL> select client_name,status from DBA_AUTOTASK_CLIENT;

CLIENT_NAME                                                      STATUS 
---------------------------------------------------------------- -------- 
auto optimizer stats collection                                  ENABLED 
auto space advisor                                               ENABLED 
sql tuning advisor                                               ENABLED

begin 
DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection', 
operation => NULL, 
window_name => NULL); 
end; 

PL/SQL procedure successfully completed.

SQL>  select client_name,status from DBA_AUTOTASK_CLIENT;

CLIENT_NAME                                                      STATUS 
---------------------------------------------------------------- -------- 
auto optimizer stats collection                                  DISABLED 
auto space advisor                                               ENABLED 
sql tuning advisor                                               ENABLED 

orale 10g和11g中的自动统计任务的更多相关文章

  1. Oracle 10g和11g中的自动统计任务

    1)  先来看下oracle 10g中的自动统计任务的问题. 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动 ...

  2. oracle 11g中的自动维护任务管理

    因为人员紧缺,最近又忙着去搞性能优化的事情,有时候真的是不想再搞这个事情,只是没办法,我当前的绩效几乎取决于这个项目的最终成绩,所以不管是人的事还是事的事,都得去让他顺利推进. 前段时间发生还有几台服 ...

  3. 11G中自动收集统计信息

    在11G中,引入了一个名为 gather_stats_prog 的自动运行任务专用于自动收集统计信息.其对应的客户端名称为"auto optimizer stats collection&q ...

  4. [统计信息系列7] Oracle 11g的自动统计信息收集

    (一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集.SQL调优顾问.段空间调整顾问,查看方法如下: SQL> SELECT CLIENT_NAME,T ...

  5. 11g新特性-如何禁用自动统计信息收集作业

    一.11g中auto stats gather job被集成到了auto task中. SQL> select client_name,status from DBA_AUTOTASK_CLIE ...

  6. 自动统计安卓log中Anr,Crash,Singnal出现数量的Python脚本 (转载)

    自动统计安卓log中Anr,Crash,Singnal出现数量的Python脚本   转自:https://www.cnblogs.com/ailiailan/p/8304989.html 作为测试, ...

  7. oracle 11g 中 (oracle 10g) crsctl 的 替换命令

     oracle 11g 中 (oracle 10g) crsctl 的 替换命令 Deprecated Command Replacement Commands crs_stat  ---集群状态 ...

  8. Oracle的自动统计信息不收集直方图的信息

    Oracle的自动统计信息不收集直方图的信息 在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10 ...

  9. Oracle自动统计信息的收集原理及实验

    [日期:2014-11-21]来源:Linux社区  作者:stevendbaguo[字体:大 中 小] 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATH ...

随机推荐

  1. Ordering Tasks UVA - 10305(拓扑排序)

    在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点. 先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一. 一直做改操作,直到所有的节点都被 ...

  2. Java基础04-数据的输入

    1.为什么要有数据的输入? 实现人机进行交互 2.什么是数据的输入? 利用扫描仪Scanner进行数据输入 3.怎么使用扫描仪Scanner? (1)放在类声明之前,引入扫描仪 import java ...

  3. thinkphp3.2 删除Runtime目录里的缓存文件,标记一下,以下好找。

    操作如下: utility::clearCache("Data"); 或 utility::clearCache("Data-Logs"); class uti ...

  4. Kudu的架构

    不多说,直接上干货!  Kudu的架构 1.kudu的 基本框架 Kudu 是用于存储结构化( structured )的表( Table ).表有预定义的带类型的列( Columns ),每张表有一 ...

  5. $.get和$.post实例

    get和post用法一样,我只写个$.get的. [HTML] <input type="text" id="myFishName" name=" ...

  6. HDU 4578——Transformation——————【线段树区间操作、确定操作顺序】

    Transformation Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 65535/65536 K (Java/Others)T ...

  7. mysql java 通用AES加密

    最近有个需求,需要对数据库某些字段加密,调研发现采用AES加密的方式较多,而且反向解密速度快,符合需求,于是采用:下面是遇到的问题及相关代码 首先第一个问题,AES的秘钥是16位,mysql的密码长度 ...

  8. dll托管于非托管

    托管的DLL组件可以在VS 直接添加引用,在使用using dll的文件命名空间就可以使用 非托管的DLL组件,只能通过using system.Runtime.InteropServices:引入 ...

  9. Spring课程 Spring入门篇 3-2 Spring bean装配(上)之bean的生命周期

    课程链接: 本节主要讲了三大块内容 1 bean的生命周期概念 2 bean的初始化和销毁的三种方式对比(代码演练) 3 总结 1 bean的生命周期概念 1.1 bean的定义:xml中关于bean ...

  10. Hibernate课程 初探多对多映射2-2 创建持久化类和映射文件

    生成实体类 和 cfg.xml配置 cfg.xml 参照一对多映射 实体类如下: Project 类 package com.ddwei.entity; import java.util.HashSe ...