zoukankan      html  css  js  c++  java
  • Oracle如何监控表的DML次数

    dba_tab_modifications/all_tab_modifications/dba_tab_modifications,这几个视图收集了表自从上一次分析之后的DML累积次数。但是要注意,考虑到性能的影响,Oracle并不是实时统计这个数据的,在Oracle9i之前,约3个小时SMON进程会刷新一次数据,而Oracle9i以后这个时间间隔变成了15分钟。

    因此以较高的频率来实时监控这个表的话,得到的并不是当前的准确数据。Oracle在dbms_stat包中提供了一个过程来手动刷新统计数据,加入在一天的业务低峰期采集一次数据的话,可以先执行该过程,就可以得到较为准确的数据。另外,不建议在业务高峰期执行该过程。

    exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
    

    在Oracle10g之前,必须手工开启表的monitoring属性,才会将DML统计信息收集到这个视图中。可以通过dba_tables.monitoring列查看表是否已经开启了监控。关于这个变化,可以参考Metalink ID 252597.1

    alter table test monitoring;
    

    Oracle10g之后,只要statistics_level是TYPICAL(默认)或者ALL,就能自动收集信息了,即使给表设置为nomonitoring也不能阻止,这个表的属性已经被废弃了。

    desc dba_tab_modifications
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     TABLE_OWNER                                        VARCHAR2(30)
     TABLE_NAME                                         VARCHAR2(30)
     PARTITION_NAME                                     VARCHAR2(30)
     SUBPARTITION_NAME                                  VARCHAR2(30)
     INSERTS                                            NUMBER
     UPDATES                                            NUMBER
     DELETES                                            NUMBER
     TIMESTAMP                                          DATE
     TRUNCATED                                          VARCHAR2(3)
     DROP_SEGMENTS    
  • 相关阅读:
    一线架构师实践指南第三编阅读笔记
    学习七
    《信息领域热词分析》,如何设计编码实现六种质量属性战术
    学习六
    一线架构师实践指南第二部分阅读笔记
    学习五
    echarts实现省市区地图下钻
    python提取文本关键词
    后缀自动机复习笔记
    bzoj 1552
  • 原文地址:https://www.cnblogs.com/weaver1/p/2369241.html
Copyright © 2011-2022 走看看