调整统计信息JOB采样时间
一、需求说明
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采样时间的更多相关文章
- SQL Server 查找统计信息的采样时间与采样比例
有时候我们会遇到,由于统计信息不准确导致优化器生成了一个错误的执行计划(或者这样表达:一个较差的执行计划),从而引起了系统性能问题.那么如果我们怀疑这个错误的执行计划是由于统计信息不准确引起的.那么我 ...
- Oracle 11G统计信息自动收集及调整
查询统计信息的收集所对应的task,以及当前状态 col CLIENT_NAME for a50col TASK_NAME for a20SELECT client_name, task_name, ...
- 有关Oracle统计信息的知识点[z]
https://www.cnblogs.com/sunmengbbm/p/5775211.html 一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如, ...
- 有关Oracle统计信息的知识点
一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于 ...
- Oracle中的统计信息
一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于 ...
- SQL SERVER 统计信息概述(Statistics)
前言 查询优化器使用统计信息来创建可提高查询性能的查询计划,对于大多数查询,查询优化器已经为高质量查询计划生成必要的统计信息,但是在少数情况下,您需要创建附加的统计信息或者修改查询设计以得到最佳结果. ...
- Sql Server优化---统计信息维护策略
本位出处:http://www.cnblogs.com/wy123/p/5748933.html 首先解释一个概念,统计信息是什么: 简单说就是对某些字段数据分布的一种描述,让SQL Server大概 ...
- MySQL索引统计信息更新相关的参数
MySQL统计信息相关的参数: 1. innodb_stats_on_metadata(是否自动更新统计信息),MySQL 5.7中默认为关闭状态 仅在统计信息配置为非持久化的时候生效. 也就是说在i ...
- oracle里的统计信息
1 oracle里的统计信息 Oracle的统计信息是这样的一组数据,存储在数据字典,从多个维度描述了oracle数据库对象的详细信息,有6种类型 表的统计信息:记录数.表块的数量.平均行长度等 索引 ...
随机推荐
- Eclipse简明使用教程(java集成开发环境)
说明:我使用的是绿色便携版的Eclipse,免安装,解压就能用.链接:https://download.csdn.net/download/loongstyle/10700321 1_Eclipse中 ...
- pytorch基础学习(一)
在炼丹师的路上越走越远,开始入手pytorch框架的学习,越炼越熟吧... 1. 张量的创建和操作 创建为初始化矩阵,并初始化 a = torch.empty(, ) #创建一个5*3的未初始化矩阵 ...
- angular项目目录结构分析
详情查看:https://www.angular.cn/guide/file-structure app.module.ts 定义 AppModule, 这个根模块会告诉 Angular 如何组装该应 ...
- SIT测试 和 UAT测试
在企业级软件的测试过程中,经常会划分为三个阶段——单元测试,SIT和UAT,如果开发人员足够,通常还会在SIT之前引入代码审查机制(Code Review)来保证软件符合客户需求且流程正确.下面简单介 ...
- Java中声明泛型方法
泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test<T>{}.这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类 ...
- Flutter 中使用Future消除Callback Hell
/先分别定义各个异步任务 Future<String> login(String userName, String pwd){ ... //用户登录 }; Future<String ...
- Apache工作模式切换
一.apache运行模式切换 apache比较常用的工作模式有worker以及prefork两种方式 1.编译安装: 如果在编译时候不指定,系统默认的是prefork模式.如果需要换成worker模式 ...
- 未清SO关闭处理
使用: SD_SALESDOCUMENT_CHANGE 关闭订单 DATA: ls_header_in LIKE bapisdhd1 . DATA: ls_header_inx LIKE bap ...
- Python3之类和实例访问限制
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面的Student类定义来看,外部代码还是可以自由地修改一个实例的na ...
- 【ARTS】01_38_左耳听风-201900729~201900804
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...