Oracle的奇葩设置之自动统计信息更新

    目前,oracle数据库版本已经到达12C了,数据库SQL的执行基本都是基于CBO开销模式的。但是,对于应用维护人员不尽理解数据库的工作原理,他们为了最求数据库的高性能,创建完数据库,却禁用了数据库统计信息自动更新的JOB。在联通,通过如下方法查看,发现很多数据库的统计信息更新作业都被禁用了。
SQL> select owner,job_name,enabled from dba_scheduler_jobs where job_name='GATHER_STATS_JOB';
OWNER                     JOB_NAME                 ENABL
------------------------------ ------------------------------  -----
SYS                         GATHER_STATS_JOB     FALSE
    这样,虽然能暂时换来数据库的高性能,但是这并不是应用最求应用系统最好性能的根本方法。反而,他们关闭了数据库统计信息自动更新任务,却又忘记关注数据库对象的统计信息,更容易导致锁表、全表扫描、表的高水位问题。因为,数据库对象的统计信息不再自动更新,SQL执行失去了CBO开销模式评估的最有效的信息,导致SQL执行发生一系列的问题。今天,ERP项目管理就发现一个奇特的问题:表只有143M,使用select进行记录数统计时执行20多分钟没有结果,却被数据库强制断开了连接;在综合网管系统中发现很多ORA-01555的报错,找到一个SQL执行老失败,查看SQL涉及的表的统计信息也是2年前的,再一看数据库的对象统计信息自动更新任务也是被禁用了的。
    其实,如果想从统计信息平衡应用的好性能,可以人为的做个crontab,人为判断数据库空闲时间,开启数据库统计信息更新功能,执行数据库统计信息更新。在其他的时间段可以暂时停止该任务的执行。

时间: 2024-08-03 02:39:37

Oracle的奇葩设置之自动统计信息更新的相关文章

Greenplum 自动统计信息收集 - 暨统计信息不准引入的broadcast motion一例

标签 PostgreSQL , Greenplum , 统计信息 , 自动统计信息 , broadcast motion , 执行计划 背景 数据库执行计划的好坏,与数据库的SQL优化器息息相关.Greenplum有两套优化器,legacy query optimizer 与 ORCA. 这两个优化器都是CBO优化器,都需要依赖统计信息,如果统计信息不准确,可能生成的执行计划就不准确. 例如我们有一个这样的QUERY,发现怎么跑都跑不出来. 观察执行计划,发现有一个节点用到了broadcast

Oracle并发(CONCURREMT)收集统计信息 (文档 ID 1555451.1)

 Oracle并发(CONCURREMT)收集统计信息 (文档 ID 1555451.1)   >                    >    >  >      >  >      >                          >   >>             >>>>>> >>>>>> >> > >>>>>&

Oracle的奇葩设置之归档清理作业与rm -rf

    虽然,Linux.Unix主机的定时任务crontab对于应用或数据库服务器的日常维护起到了很大的作用,但是,一旦设置不合理,就会给应用或数据库服务器的正常运行带来潜在的安全隐患.     在联通有这么奇葩的设置,那个超级不合理的设置是关于oracle数据库归档清理的.主机维护人员为了减轻日常维护负担,将清理任务交给了crontab,放了一个清理脚本在数据库服务器上.令谁都想不到的是脚本清理归档的命令是:rm -rf .....由于数据库服务器存储空间压力很大,需要该脚本没30分钟运行一

Oracle的奇葩设置之非归档模式与RMAN备份

    数据库归档模式与RMAN备份策略是保障数据库数据安全的基本手段,对于ORACLE数据库DBA来说,很清楚ORACLE的RMAN备份是基于数据库的归档模式,但对于主机维护人员及开发人员,他们可能很不清楚.     如果,数据库没有开启数据库归档,ORACLE的RMAN备份就无法进行,否则报错如下: 12/01/2015 03:32:37 Mon Jan 12 03:32:37 2015   ORA-00258: NOARCHIVELOG 模式下的手动归档必须标识日志   ALTER SYS

MS SQL 统计信息浅析上篇

统计信息概念     统计信息是一些对象,这些对象包含在表或索引视图中一列或多列中的数据分布有关的统计信息.数据库查询优化器使用这些统计信息来估计查询结果中的基数或行 数. 通过这些基数估计,查询优化器可以生成高质量的执行计划. 例如,查询优化器可以使用基数估计选择索引查找运算符而不是耗费更多资源的索引扫描运算符,从而提高查询性能.[参考MSDN]     其实如果你以前没有接触过统计信息,你可以将其看做是数据库为了得到最优的执行计划,统计数据库里面表.索引等对象的一些数据,例如表的记录数.所有

Oracle 12c数据库优化器统计信息收集的最佳实践

Oracle 12c数据库优化器统计信息收集的最佳实践 转载自     沃趣科技(ID:woqutech)  作者         刘金龙(译) 原文链接   http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-bp-for-stats-gather-12c-1967354.pdf 导  语 Oracle优化器会为SQL语句产生所有可能的访问路径(执行计划),然后从中选择一条COST值最低的执行路径,这个cost值是

Oracle系统统计信息

Oracle系统统计信息 系统统计信息主要描述了与系统硬件相关的某些特性,例如cpu和io系统的性能和利用率等.这些信息对于查询优化器来说是非常重要的,在选择执行计划的过程中,oracle优化器会利用系统统计信息来评估执行计划的成本,因此,准确无误的系统统计信息可以帮助优化器做出正确的选择. 我们可以通过DBMS_STATS.GATHER_SYSTEM_STATS过程来收集系统统计信息,收集的方式有两种:负载统计(WORKLOAD STATISTICS)在具有真实系统负载的数据库系统上,收集某一

性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

原文:性能优化--统计信息--SQLServer自动更新和自动创建统计信息选项 原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-auto-update-and-auto-create-statistics-options/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012913          

Oracle 还原历史统计信息

      统计信息是个非常有用的东东,没有它,SQL优化器就好比巧妇难为无米之炊!良好高效的SQL执行计划依赖于真实的统计信息.然而在有些情况下,比如对比生产环境与测试环境执行计划,需要使用生产环境的统计信息.而有时候呢则需要还原Oracle历史统计信息.本文基于后者即如何还原历史统计信息来展开,同时描述了11g缺省情况下对于统计信息的调度.       有关统计信息的导入导出可以参考:            dbms_stats 导入导出 schema 级别统计信息            d