调整统计信息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种类型 表的统计信息:记录数.表块的数量.平均行长度等 索引 ...
随机推荐
- linux tcp 高并发最大连接数
Linux下高并发socket最大连接数所受的限制问题 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统 ...
- Coherent Calculator
计算逻辑 输入想要的参数后点击以下按钮进行计算和调整: Formula Bigger N Smaller N Bigger M Smaller M 所以在这个策略中Ft被Fixed在输入的值,其他的三 ...
- java模拟post进行文件提交 采用httpClient方法
package com.jd.vd.manage.util.filemultipart; import java.io.BufferedReader;import java.io.File;impor ...
- python小白之矩阵matrix笔记(updating)
Matrix #python学习之矩阵matrix 2018.4.18 # -*- coding: UTF-8 -*- from numpy import * import numpy as np i ...
- 【420】链表实现Quack
quack.h // quack.h: an interface definition for a queue/stack #include <stdio.h> #include < ...
- SpringMVC+Ajax实现文件批量上传和下载功能实例代码
需求: 文件批量上传,支持断点续传. 文件批量下载,支持断点续传. 使用JS能够实现批量下载,能够提供接口从指定url中下载文件并保存在本地指定路径中. 服务器不需要打包. 支持大文件断点下载.比如下 ...
- 常规函数模块CALL in new task 报错
使用START NEW TASK, 函数需要是远程调用模块. 错误:FUNCTION module ' ZMMFM0021' cannot be used for 'remote' CALLS. ...
- Mac更新npm和node版本
npm: 查看当前版本: npm --version 更新到最新版: sodu npm install npm@latest -g node: 1.查看当前版本: node -v 2.清除npm当前缓 ...
- html设置多个div并排显示
我这里以4个div为例,html代码如下: <body> <div id="column1" style="background-color: blue ...
- 未能加载文件或程序集“System.Web.Extensions, Version=1.0.61025.0, Culture=neutral
近日将电脑重装了一下,刚刚装上vs2005后打开以前的一个项目,居然出现了下面的错误: 未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.610 ...