Oracle统计信息自动收集

本文介绍了Oracle数据库中自动收集统计信息的潜在问题,并提供了在10g和11g中关闭、启用以及调整该功能的方法。建议对于大型数据库,关闭自动任务,采用自定义存储过程进行统计信息收集。
摘要由CSDN通过智能技术生成

Oracle提供了统计数据自动收集功能。在部署安装软件过程中,其中有一个步骤便是提示是否启用这个功能(默认是启用这个功能)。这个功能貌似带来了统计数据采集上的便捷,但是其中却隐藏着性能隐患。在7*24小时的系统中这种自动运行的任务很有可能对系统性能带来冲击。因此,我们酌情需要修改或是禁掉这项功能。10g11g的处理方法有所不同,以下分别阐述。


一、针对Oracle 10g的处理方法


1、自动统计作业的查询

Oracle 10g版本中,自动统计的job名为GATHER_STATS_JOB,这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启,它调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计。


下面是在10g中查看自动收集统计作业的方法:

col program_name for a30

col schedule_name for a30

col last_run_duration for a30

select owner, job_name, program_name, schedule_name, job_class, enabled, auto_drop, run_count, to_char(last_start_date, 'yyyy-mm-dd hh24:mi:ss') last_start_time, last_run_duration, state from dba_scheduler_jobs where job_name = 'GATHER_STATS_JOB';


OWNER                          JOB_NAME                       PROGRAM_NAME                   SCHEDULE_NAME                  JOB_CLASS                      ENABL AUTO_  RUN_COUNT LAST_START_TIME     LAST_RUN_DURATION              STATE

------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ----- ----- ---------- ------------------- ------------------------------ ---------------

SYS                            GATHER_STATS_JOB               GATHER_STATS_PROG              MAINTENANCE_WINDOW_GROUP       AUTO_TASKS_JOB_CLASS           TRUE  FALSE         29 2017-01-28 06:00:05 +000000000 00:00:38.535000     SCHEDULED


以下查看自动收集统计作业的历次运行明细,该表会保留最近一个月的记录:

col owner for a10

col job_name for a20

col status for a10

col run_duration for a20

col session_id for a10

col cpu_used for a20

select owner, job_name, status, to_char(actual_start_date, 'yyyy-mm-dd hh24:mi:ss') actual_start_time, run_duration, session_id, cpu_used

  from dba_scheduler_job_run_details where job_name = 'GATHER_STATS_JOB' order by actual_start_date desc;



即便作业被删除,我们仍可以通过log记录查看作业的历史运行情况:

col owner for a10

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值