Oracle 11g系统自己主动收集统计信息的一些知识「建议收藏」

Oracle 11g系统自己主动收集统计信息的一些知识

大家好,又见面了,我是全栈君。

    在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息。怎样推断10%。之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验。这个STALE_PERCENT=10%,是无法改动的,假设表很大。10%是许多的数据,很有可能造成统计信息不准确。

    在11g之后,STALE_PERCENT=10%是能够改动的,分为全局(DBMS_STATS.SET_GLOBAL_PREFS )和表级别(DBMS_STATS.SET_TABLE_PREFS)。表级别的设定:

    改动为5%(范围从1-100): exec dbms_stats.set_table_prefs(null,’table_name’,’STALE_PERCENT’,5);
    恢复为10%: exec dbms_stats.set_table_prefs(null,’table_name‘,’STALE_PERCENT’,null);
    查询百分比:select dbms_stats.get_prefs(‘STALE_PERCENT’,null,’table_name’) from dual;


—11g的是 周一到周五 22:00-2:00 周六周日 6:00-4:00

SELECT w.window_name, w.repeat_interval, w.duration, w.enabled
FROM dba_autotask_window_clients c, dba_scheduler_windows w
WHERE c.window_name = w.window_name
AND c.optimizer_stats = ‘ENABLED’;
WINDOW_NAME          REPEAT_INTERVAL                                              DURATION
——————– ———————————————————— —————
SUNDAY_WINDOW        freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0         +000 20:00:00
FRIDAY_WINDOW        freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0        +000 04:00:00
WEDNESDAY_WINDOW     freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0        +000 04:00:00
SATURDAY_WINDOW      freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0         +000 20:00:00
THURSDAY_WINDOW      freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0        +000 04:00:00
TUESDAY_WINDOW       freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0        +000 04:00:00
MONDAY_WINDOW        freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0        +000 04:00:00

–禁用自己主动收集
exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => ‘auto optimizer stats collection’,operation => NULL,window_name => NULL);
–启用自己主动收集
exec DBMS_AUTO_TASK_ADMIN.ENABLE(client_name => ‘auto optimizer stats collection’,operation => NULL,window_name => NULL);
–查看job

select client_name,status from dba_autotask_client;

CLIENT_NAME                                                      STATUS
—————————————————————- ——–
auto optimizer stats collection                                  ENABLED
auto space advisor                                               ENABLED
sql tuning advisor                                               ENABLED

–收集当前数据库下全部用户的统计信息
exec dbms_stats.gather_database_stats(user);
–收集当前数据库用户下全部对象的统计信息
exec dbms_stats.gather_schema_stats(user);
–收集数据字典的统计信息
exec dbms_stats.gather_dictionary_stats();

–当系统有非常大的分区表时,假设总是所有收集则会比較慢。11g之后能够设置INCREMENTAL仅仅对数据有变动的分区做收集

exec dbms_stats.set_table_prefs(user,’table_name’,’INCREMENTAL’,’TRUE’);–仅仅收集数据变动的分区

exec dbms_stats.set_table_prefs(user,’table_name’,’INCREMENTAL’,’FALSE‘);–都要收集

select dbms_stats.get_prefs(‘INCREMENTAL’,null,’table_name‘) from dual;–查看分区表INCREMENTAL的值

–获取global的统计信息收集设置选项
select dbms_stats.get_prefs(‘method_opt’) from dual;
select dbms_stats.get_prefs(‘concurrent’) from dual; 
select dbms_stats.get_prefs(‘GRANULARITY’) from dual;

select dbms_stats.get_prefs(‘INCREMENTAL’) from dual;
–设置global的统计信息收集选项

exec DBMS_STATS.SET_PARAM(‘DEGREE’,4);

exec DBMS_STATS.SET_PARAM(‘INCREMENTAL’,’TRUE’);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115476.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 2020-10-24

    2020-10-24产品经理面试习题大汇总凡事“预则立,不预则费”。即使你有丰富的产品经验,在面试那种紧张的环境下要面试好也不是一件易事,因为在那种环境下,你要对面试官提出的问题快速反映,快速组织语言,而你又没有经常训练这种能力,想回答好还是很不容易的,如果你经常背一些产品经理的面试题,那你回答的时候就流畅多了,下面将一些常见的产品经理面试题整理下来,需要的小伙伴拿去。1、介绍一下你自己介绍一下自己的姓名,年龄、毕业院校,工作经历。简单的介绍,保持在三分钟以内,给面试官问问题的时间。工作经历主要讲一些.

  • linux的vi命令详解_centos7 vi命令

    linux的vi命令详解_centos7 vi命令Linux命令-vi命令  vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器.由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器.。1.语法:vi[参数][文件名称]…2.功能:  编辑文件。3.参数:n打印最近的n条历史命令。-N显示历史记录中最近的N个记录。-c清空当前历史命令。-a将目前新增的历史

  • 字符串中最长的回文字符串长度

    字符串中最长的回文字符串长度1、回文字符串  回文字符串是指aba类型的字符串,即字符串关于中间字符对称。判断字符串中是否含有回文、得到最长回文字符串的长度、得到不同回文字符串的个数等等,是经常考察的编程题目。2、之前采用的一种比较笨的得到最长回文字符串的方法  思想:双重指针遍历,根据回文字符串的特点,回文开始的字符与结尾处字符相同……那么一个指针i从前向后遍历,一个指针j从后向前遍历,如果出现

  • matlab的解决反复激活问题的license.lic文件[通俗易懂]

    matlab的解决反复激活问题的license.lic文件[通俗易懂]%%%%%%%%%%%%%%%%%%%%%%%%%%%%INCREMENTAerospace_BlocksetMLM99permanentuncounted\A05070F00D1EB1F92326VENDOR_STRING=QQ=47399897HOSTID=ANY\ck=216SN=888888TS_OKINCREMENTAerospace_ToolboxMLM99permanentuncounted\6090F

  • android 自定义控件 attrs,android 使用attrs自定义控件

    android 自定义控件 attrs,android 使用attrs自定义控件步骤:1、在values下新建一个attrs.xml的资源文件(my_attrs.xml)//===》name为引用资源的名称//attr中的name为自定义的名称format为类型//字体颜色//字体大小//字符串2、新建一个类MyAttrsMyView继承View覆写publicMyAttrsMyView(Contextcontext,Attribu…

    2022年10月17日
  • Idea下Spring Boot、thymeleaf、Jpa项目整合实例「建议收藏」

    Idea下Spring Boot、thymeleaf、Jpa项目整合实例

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号