一、需求说明

Oracle数据库中存在定时JOB,自动执行收集统计信息的程序。但是对于7*24小时系统来说,Oracle配置的定时收集时间不太合理,需要人为调整。本篇博客就是基于这种需求,调整JOB采样的时间及终止时间。

思路:查询现有的默认收集统计信息的策略,对它进行调整,调整后进行检查修改有效,操作完毕。

二、操作步骤

2.1 修改前,查询JOB信息

查询数据库自动收集统计信息是否被禁用

SQL> select client_name,status from dba_autotask_client;

CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED


数据库默认,周一~周五(每天晚上10点开始,收集6小时截止)、周六日(每天早上6点开始,收集20小时截止)
SQL> select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2
where t1.window_name=t2.window_name and t2.window_group_name in ('MAINTENANCE_WINDOW_GROUP','BSLN_MAINTAIN_STATS_SCHED'); WINDOW_NAME REPEAT_INTERVAL DURATION
-------------------- ------------------------------------------------------- ----------------------------------------------------
SATURDAY_WINDOW freq=daily;byday=SAT;byhour=;byminute=; bysecond= + ::
FRIDAY_WINDOW freq=daily;byday=FRI;byhour=;byminute=; bysecond= + ::
THURSDAY_WINDOW freq=daily;byday=THU;byhour=;byminute=; bysecond= + ::
WEDNESDAY_WINDOW freq=daily;byday=WED;byhour=;byminute=; bysecond= + ::
TUESDAY_WINDOW freq=daily;byday=TUE;byhour=;byminute=; bysecond= + ::
MONDAY_WINDOW freq=daily;byday=MON;byhour=;byminute=; bysecond= + ::
SUNDAY_WINDOW freq=daily;byday=SUN;byhour=;byminute=; bysecond= + ::
rows selected.

2.2 修改操作

--周六日统计信息收集最长时间调整为4小时
BEGIN
dbms_scheduler.disable(
name => 'SATURDAY_WINDOW');
dbms_scheduler.set_attribute(
name => 'SATURDAY_WINDOW',
attribute => 'DURATION',
value => numtodsinterval(, 'hour'));
dbms_scheduler.enable(
name => 'SATURDAY_WINDOW');
END;
/ BEGIN
dbms_scheduler.disable(
name => 'SUNDAY_WINDOW');
dbms_scheduler.set_attribute(
name => 'SUNDAY_WINDOW',
attribute => 'DURATION',
value => numtodsinterval(, 'hour'));
dbms_scheduler.enable(
name => 'SUNDAY_WINDOW');
END;
/
commit; -- --统计信息开始收集时间调整
周一-周五,调整为0点开始 BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."MONDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'FREQ=WEEKLY;BYDAY=MON;BYHOUR=0;BYMINUTE=0;BYSECOND=0');
END;
/ BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."TUESDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'FREQ=WEEKLY;BYDAY=TUE;BYHOUR=0;BYMINUTE=0;BYSECOND=0');
END;
/ BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."WEDNESDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'FREQ=WEEKLY;BYDAY=WED;BYHOUR=0;BYMINUTE=0;BYSECOND=0');
END;
/ BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."THURSDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'FREQ=WEEKLY;BYDAY=THU;BYHOUR=0;BYMINUTE=0;BYSECOND=0');
END;
/ BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."FRIDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'FREQ=WEEKLY;BYDAY=FRI;BYHOUR=0;BYMINUTE=0;BYSECOND=0');
END;
/ BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."SATURDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'FREQ=WEEKLY;BYDAY=SAT;BYHOUR=0;BYMINUTE=0;BYSECOND=0');
END;
/ BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."SUNDAY_WINDOW"',
attribute=>'REPEAT_INTERVAL',
value=>'FREQ=WEEKLY;BYDAY=SUN;BYHOUR=0;BYMINUTE=0;BYSECOND=0');
END;
/ SQL> commit;

2.3  修改后检查

SQL> select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2
where t1.window_name=t2.window_name and t2.window_group_name in ('MAINTENANCE_WINDOW_GROUP','BSLN_MAINTAIN_STATS_SCHED'); WINDOW_NAME REPEAT_INTERVAL DURATION
-------------------- ------------------------------------------------------- ----------------------------------------------
SATURDAY_WINDOW FREQ=WEEKLY;BYDAY=SAT;BYHOUR=;BYMINUTE=;BYSECOND= + ::
FRIDAY_WINDOW FREQ=WEEKLY;BYDAY=FRI;BYHOUR=;BYMINUTE=;BYSECOND= + ::
THURSDAY_WINDOW FREQ=WEEKLY;BYDAY=THU;BYHOUR=;BYMINUTE=;BYSECOND= + ::
WEDNESDAY_WINDOW FREQ=WEEKLY;BYDAY=WED;BYHOUR=;BYMINUTE=;BYSECOND= + ::
TUESDAY_WINDOW FREQ=WEEKLY;BYDAY=TUE;BYHOUR=;BYMINUTE=;BYSECOND= + ::
MONDAY_WINDOW FREQ=WEEKLY;BYDAY=MON;BYHOUR=;BYMINUTE=;BYSECOND= + ::
SUNDAY_WINDOW FREQ=WEEKLY;BYDAY=SUN;BYHOUR=;BYMINUTE=;BYSECOND= + :: rows selected. SQL> select WINDOW_NAME,to_char(WINDOW_START_TIME,'yyyy-mm-dd hh24:mi:ss'),to_char(WINDOW_END_TIME,'yyyy-mm-dd hh24:mi:ss')
from dba_autotask_window_history order by ; WINDOW_NAME TO_CHAR(WINDOW_STAR TO_CHAR(WINDOW_END_
-------------------- ------------------- -------------------
FRIDAY_WINDOW -- :: -- ::
SATURDAY_WINDOW -- :: -- ::
SUNDAY_WINDOW -- :: -- ::
MONDAY_WINDOW -- :: -- ::
TUESDAY_WINDOW -- :: -- ::
WEDNESDAY_WINDOW -- :: -- ::
THURSDAY_WINDOW -- :: -- ::
FRIDAY_WINDOW -- :: -- ::
SATURDAY_WINDOW -- :: -- ::
SUNDAY_WINDOW -- :: -- ::
MONDAY_WINDOW -- :: -- :: WINDOW_NAME TO_CHAR(WINDOW_STAR TO_CHAR(WINDOW_END_
-------------------- ------------------- -------------------
TUESDAY_WINDOW -- :: -- ::
WEDNESDAY_WINDOW -- :: -- ::
THURSDAY_WINDOW -- :: -- ::
FRIDAY_WINDOW -- :: -- ::
SATURDAY_WINDOW -- :: -- ::
SUNDAY_WINDOW -- :: -- ::
MONDAY_WINDOW -- :: -- ::
TUESDAY_WINDOW -- :: -- ::
WEDNESDAY_WINDOW -- :: -- ::
THURSDAY_WINDOW -- :: -- ::
FRIDAY_WINDOW -- :: -- :: WINDOW_NAME TO_CHAR(WINDOW_STAR TO_CHAR(WINDOW_END_
-------------------- ------------------- -------------------
SATURDAY_WINDOW -- :: -- ::
SUNDAY_WINDOW -- :: -- ::
MONDAY_WINDOW -- :: -- ::
TUESDAY_WINDOW -- :: -- ::
WEDNESDAY_WINDOW -- :: -- ::
THURSDAY_WINDOW -- :: -- ::
SATURDAY_WINDOW -- :: -- ::
SUNDAY_WINDOW -- :: -- ::
MONDAY_WINDOW -- :: -- :: rows selected.

2.4 补充关闭其余JOB

说明,Oracle数据库,除自动收集统计信息JOB外,还有关于SQL调优建议JOB SQL TUNING,以及段分析JOB,实际工作很少使用,建议关闭。

SQL> select client_name,status from dba_autotask_client;

CLIENT_NAME    STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor DISABLED
sql tuning advisor DISABLED BEGIN
dbms_auto_task_admin.disable(client_name=>'sql tuning advisor',operation=>NULL,window_name=>NULL);
END;
/
commit; BEGIN
dbms_auto_task_admin.disable(client_name=>'auto space advisor',operation=>NULL,window_name=>NULL);
END;
/
commit; SQL> select client_name,status from dba_autotask_client;
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor DISABLED
sql tuning advisor DISABLED

调整统计信息JOB采样时间的更多相关文章

  1. SQL Server 查找统计信息的采样时间与采样比例

    有时候我们会遇到,由于统计信息不准确导致优化器生成了一个错误的执行计划(或者这样表达:一个较差的执行计划),从而引起了系统性能问题.那么如果我们怀疑这个错误的执行计划是由于统计信息不准确引起的.那么我 ...

  2. Oracle 11G统计信息自动收集及调整

    查询统计信息的收集所对应的task,以及当前状态 col CLIENT_NAME for a50col TASK_NAME for a20SELECT client_name, task_name, ...

  3. 有关Oracle统计信息的知识点[z]

    https://www.cnblogs.com/sunmengbbm/p/5775211.html 一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如, ...

  4. 有关Oracle统计信息的知识点

    一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于 ...

  5. Oracle中的统计信息

    一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于 ...

  6. SQL SERVER 统计信息概述(Statistics)

    前言 查询优化器使用统计信息来创建可提高查询性能的查询计划,对于大多数查询,查询优化器已经为高质量查询计划生成必要的统计信息,但是在少数情况下,您需要创建附加的统计信息或者修改查询设计以得到最佳结果. ...

  7. Sql Server优化---统计信息维护策略

    本位出处:http://www.cnblogs.com/wy123/p/5748933.html 首先解释一个概念,统计信息是什么: 简单说就是对某些字段数据分布的一种描述,让SQL Server大概 ...

  8. MySQL索引统计信息更新相关的参数

    MySQL统计信息相关的参数: 1. innodb_stats_on_metadata(是否自动更新统计信息),MySQL 5.7中默认为关闭状态 仅在统计信息配置为非持久化的时候生效. 也就是说在i ...

  9. oracle里的统计信息

    1 oracle里的统计信息 Oracle的统计信息是这样的一组数据,存储在数据字典,从多个维度描述了oracle数据库对象的详细信息,有6种类型 表的统计信息:记录数.表块的数量.平均行长度等 索引 ...

随机推荐

  1. 4.弹性网络( Elastic Net)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_21904665/article/details/52315642 ElasticNet 是一种 ...

  2. Mybatis 中的转义字符(转帖)

    下文来自:https://www.cnblogs.com/dato/p/7028723.html  在此感谢作者的辛勤付出. 记录以下mybatis中的转义字符,方便以后自己看一下 Mybatis转义 ...

  3. Java并发包线程池之ForkJoinPool即ForkJoin框架(二)

    前言 前面介绍了ForkJoinPool相关的两个类ForkJoinTask.ForkJoinWorkerThread,现在开始了解ForkJoinPool.ForkJoinPool也是实现了Exec ...

  4. Redis Sentinel 高可用服务架构搭建

    https://www.cnblogs.com/xishuai/p/redis-sentinel.html

  5. 使用弹窗批量修改数据POPUP_GET_VALUES

    转自:https://blog.csdn.net/huanglin6/article/details/81231215 业务场景:在SAP内,有时候需要用户批量维护某些数据,这时候可以使用标准函数PO ...

  6. php关于文件上传的两个配置项说明

    ; Maximum allowed size for uploaded files.; http://php.net/upload-max-filesizeupload_max_filesize = ...

  7. [CareerCup] Single Valid Tree

    https://www.careercup.com/question?id=5103530547347456 Given a list of nodes, each with a left child ...

  8. charles 验证工具

    本文参考:charles 验证工具 验证工具/validate 验证工具 Charles可以通过发送到W3C HTML验证器,W3C CSS验证器和W3C Feed验证器来验证记录的响应. 验证报告在 ...

  9. Python之Numpy库常用函数大全(含注释)(转)

    为收藏学习,特转载:https://blog.csdn.net/u011995719/article/details/71080987 前言:最近学习Python,才发现原来python里的各种库才是 ...

  10. golang web框架 beego 学习 (七)json转数组

    Modules type User struct { Id int64 `json:"id"` Name string `json:"name"` Email ...