`

orale 10g和11g中的自动统计任务

 
阅读更多
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
分享到:
评论

相关推荐

    Oracle11g 自动维护任务配置与调优

    根据提供的文件信息,本文将详细解析Oracle 11g中的自动维护任务配置与调优方法,特别是关于如何修改时间窗口等内容。 ### Oracle 11g 自动维护任务配置与调优 #### 一、理解Oracle自动维护任务 Oracle 11g引入了...

    oracle 11g 统计信息

    为了确保统计信息的准确性和时效性,Oracle 11g引入了一个名为DBMS_STATS的新包,并提供了一种称为“自动统计信息收集”的机制,该机制可以在预定的时间自动运行。 #### 自动统计信息收集的时间安排 根据题目中的...

    Oracle 10g 标准教程课件 PPT

    8. 数据库性能优化:Oracle 10g提供了自动工作负载 Repository (AWR) 和统计信息收集,帮助管理员识别性能瓶颈。另外,通过SQL Tuning Advisor,可以自动建议优化查询的策略。 9. 版本控制:Oracle 10g引入了版本...

    Oracle10G培训日志

    Oracle10G是Oracle数据库系统的一个重要版本,它在2003年发布,提供了许多增强功能和性能优化,使得数据库管理更为高效。本培训日志主要围绕Oracle10G的相关知识展开,旨在帮助学习者深入理解Oracle数据库的运行机制...

    oracle 10g rac

    ### Oracle 10g RAC 知识点详解 #### 一、Oracle 10g RAC 概念与原理 ...通过以上知识点的学习和实践,可以深入理解Oracle 10g RAC 的原理及其管理方法,从而更好地应用这一强大的数据库集群技术。

    《Oracle10g DBA两日速成教程》-电子书下载(PDF)

    在Oracle 10g中,DBA可以通过企业管理器(EM)进行许多日常任务,这是一个图形化的界面,简化了数据库的管理。 1. **安装与配置**:Oracle 10g的安装过程涉及选择合适的安装类型(如企业版或标准版),规划数据库实例...

    oracle11g 性能优化

    Oracle 11g性能优化是数据库管理领域中的一个重要主题,对于任何使用Oracle数据库的企业或组织而言,提升系统性能、确保数据高效访问都是至关重要的。Oracle 11g版本提供了多种工具和技术来帮助管理员和开发人员优化...

    oracle11g 11.2.0.3 linux 32bit

    Oracle 11g 11.2.0.3还引入了一些重要的特性,如自动工作负载 repository (AWR) 和统计信息收集,用于性能分析;RAC(Real Application Clusters)支持,允许数据库在多台服务器上运行,提高可用性和性能;以及数据...

    ORACLE10G 性能优化

    Oracle10g性能调优是指通过一系列技术和策略来提升数据库系统的响应时间和资源利用率。调优的目的在于确保数据库能够高效地处理各种工作负载。 - **性能调优的关键点**: - 监控数据库性能,了解瓶颈所在。 - ...

    Oracle 10g基本概念

    在IT领域,Oracle数据库是企业级数据管理的基石之一,其10g版本标志着Oracle公司对网格计算(Grid Computing)的支持,以及对数据管理和安全性的重要改进。以下是对“Oracle 10g基本概念”的深入解析: ### 1. Oracle...

    centos5.x安装oracle11g

    为了支持 Oracle 11g 的安装和运行,需要安装一系列特定的软件包。这些软件包包括但不限于: - `compat-libstdc++-33`:兼容性库。 - `elfutils-libelf`:ELF 文件格式解析器。 - `elfutils-libelf-devel`:ELF 开发...

    oracle 10g performance tuning 教材

    《Oracle 10g性能调优》是一本深入解析Oracle数据库10g版本性能优化的专业教材,由Oracle University(OU)官方出版。该教材对于学习和掌握Oracle 10g数据库性能提升技术具有极高的价值,尤其对于准备Oracle ...

    oracle10g安装与配置教程.rar

    Oracle 10g是一款经典的关系型数据库管理系统,广泛应用于企业级的数据存储和处理。本教程旨在帮助初学者和有经验的IT专业人士理解Oracle 10g的安装与配置过程,确保用户能够在Oracle数据库管理的道路上顺利前行。 ...

    oracle_11g_性能优化_调优

    SQL Tuning Advisor是Oracle 11g中的一个关键组件,它能够自动分析SQL语句的执行计划,并提供优化建议。STA的工作原理主要是通过模拟不同的执行计划来评估其对性能的影响,从而找出最佳方案。 ##### 2. SQL Access ...

    数据库Oracle10g_DBA

    Oracle 10g数据库管理员(DBA)指南是一个关键资源,为那些管理、监控和优化Oracle 10g数据库系统的专业人士提供了深入的知识。Oracle 10g是Oracle公司的一个重要版本,它引入了许多新特性和改进,以提升性能、可扩展...

    Oracle Database 11g The Complete Reference

    这一章节会介绍Oracle 11g的新特性,如自动存储管理(ASM)、实时应用集群(RAC)和数据保护功能。 2. **数据库安装与配置**:书中详细讲解了如何在不同操作系统平台上安装Oracle 11g,包括选择合适的安装选项、...

    2009年图书:Oracle 10g,11g数据和数据库管理工具

    本书聚焦于Oracle 10g和11g版本的数据管理和数据库工具,旨在帮助读者优化日常数据库任务的效率、管理和性能。以下是基于该书标题、描述及部分内文所提取的关键知识点: ### 1. Oracle 10g 和 11g 版本介绍 Oracle...

    Oracle 10g/11g Data and Database Management Utilities

    Oracle 10g/11g Data and Database Management Utilities,作为这一领域的核心主题,涵盖了一系列关键工具和技术,旨在提升数据库管理员(DBA)的工作效率,优化数据库的管理和性能。以下将深入探讨这些知识点: ### ...

    Oracle 11G Performance Tuning - sg1

    11. 定时任务和自动化:使用Oracle的调度程序(DBMS_SCHEDULER)来自动化常规维护任务和性能监控,如定期的统计信息收集和数据段的压缩等。 12. 注意软硬件资源限制:在进行性能调优时,需要考虑服务器的CPU、内存...

Global site tag (gtag.js) - Google Analytics