Oracle确定过期的统计信息
2013-11-29 14:52
369 查看
Youmust regularly gather statistics on database objects as thesedatabase objects are modified over time. To determine whether agiven database object needs new database statistics, OracleDatabase provides a table monitoring facility. Thismonitoring isenabled by default when
STATISTICS_LEVELis set to
TYPICALor
ALL. 经过一段时间,随着数据库对象被修改,必须定期搜集统计信息。为了确定数据库对象需要新的数据库统计信息,oracle数据库提供了一个表监控特性。当
STATISTICS_LEVEL设置为TYPICAL或
ALL时,表监控特性默认是启动的。Monitoring tracks the approximate number of
INSERTs,
UPDATEs, and
DELETEs for that table andwhether the table has been truncated since the last time statisticswere gathered. You can access informationabout changes of tablesin the
USER_TAB_MODIFICATIONSview. Following adata-modification, there may be a few minutes delay while OracleDatabase propagates the information to this view. Use the
DBMS_STATS.FLUSH_DATABASE_MONITORING_INFOprocedure toimmediately reflect the outstanding monitored information kept inthe memory. 表监控特性跟踪从最后一次统计搜集后,表的insert、update、delete操作的近似数,和表是否被truncate。可以通过查询
USER_TAB_MODIFICATIONS视图获得关于表变化的信息。数据修改后,通过USER_TAB_MODIFICATIONS获取修改信息可能有一些延时。使用DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO立即将延时信息保持到内存中。The
GATHER_DATABASE_STATSor
GATHER_SCHEMA_STATSprocedures gather new statisticsfor tables with stale statistics when the
OPTIONSparameter is set to
GATHER
STALEor
GATHER
AUTO.If a monitored table has been modified more than10%, then these statistics are considered stale and gatheredagain.
当属性OPTIONS设置为GATHER STALEor
GATHER
AUTO,
GATHER_DATABASE_STATS或
GATHER_SCHEMA_STATS
为有过期统计信息的表搜集新的统计信息,如果一个监控的表修改超过了10%,则统计信息被认为过期,需再次搜集。
部分实验如下:SQL> select * from test01; A B---------- ---------- 21 10 9 10 22 10 23 10 24 10 25 10 1 1 2 2 44 44 55 5510 rowsselected. ------表数据10行SQL> select * fromuser_tab_modifications; no rowsselected ------实验前已对测试库做了搜集统计信息,此时显示为空SQL> insert into test01 values(66,66);1 row created.SQL> commit;Commit complete.SQL> select * from user_tab_modifications;no rowsselected ------表的修改未及时显示SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO; ------将修改的信息keep到内存PL/SQL procedure successfully completed.SQL> selecttable_name,INSERTS,UPDATES,DELETES,truncated fromuser_tab_modifications;TABLE_NAME INSERTS UPDATES DELETES TRU------------------------------ ---------- ---------- -------------TEST01
相关文章推荐
- Oracle 统计信息过期的表重新收集统计信息
- 有时候要改改表字段的某些精度,可能一多就不确定是否改全了,Oracle支持搜索table,字段,对象等统计信息
- 错误的索引统计信息导致oracle expdp导500多G的大分区表时hang住
- 收集oracle统计信息
- oracle 由于impdp 引起的表统计信息被锁 ORA-20005: object statistics are locked
- oracle统计信息
- Oracle Statistic 统计信息 小结
- 收集oracle统计信息
- oracle分区表常用统计信息
- ORACLE收集统计信息
- oracle收集统计信息之analyze
- oracle 11g 自动收集统计信息 导致IO过大
- 第十二章——SQLServer统计信息(3)——发现过期统计信息并处理
- Oracle 10g统计信息增加恢复功能(二)
- 收集oracle统计信息
- 找出未收集统计信息,以及统计信息过期的表
- [Oracle] 11G自己主动收集统计信息
- 收集oracle统计信息
- 收集oracle统计信息
- Oracle执行计划突变诊断之统计信息收集问题