当前位置:  数据库>oracle

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

    来源: 互联网  发布时间:2017-06-11

    本文导语:    在11g之前,当表的数据量修改超过总数据量的10%,就会晚上自动收集统计信息,如何判断10%,之前的帖子有研究过:。这个STALE_PERCENT=10%,是无法修改的,如果表非常大,10%是非常多的数据,非常有可能造成统计信息不准确...

   在11g之前,当表的数据量修改超过总数据量的10%,就会晚上自动收集统计信息,如何判断10%,之前的帖子有研究过:。这个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');

Oracle 单实例 从32位 迁移到 64位 方法 

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle导入导出expdp IMPDP详解

Oracle 10g expdp导出报错ORA-4031的解决方法


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下Oracle数据库相关知识集粹
  • Oracle SQL基础知识 iis7站长之家
  • oracle 创建数据库小知识
  • Oracle 知识问答
  • Oracle小知识集锦
  • oracle数据库入门知识简述
  • 想学习UNIX,LINUX,ORACLE方面的知识。请帮忙。
  • Oracle数据库基本知识学习笔记
  • 浅析基于Oracle案例知识库设计
  • Linux中Oracle使用相关知识集锦
  • 基础知识:Oracle数据库的启动方式
  • Oracle SQL基础知识
  • 浅谈应该如何理解Oracle的架构知识
  • Oracle系统表知识
  • Oracle数据库中安全知识介绍
  • Oracle日期函数知识整理
  • oracle 合并查询 事务 sql函数小知识学习
  • oracle10g 知识篇
  • Oracle与连接相关知识
  • Oracle基本知识与问题解决
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,