在数据库技术大会上,做了《构建高可用数据库监控系统》的分享以后,很多朋友对北斗如何实现表的DML次数监控有兴趣,会上因为时间的原因,我只是说有系统视图可以查到这个信息,因此有了本文,可以稍微详细一点来说明是如何实现的。

我说的系统视图,具体指的是dba_tab_modifications/all_tab_modifications/user_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也不能阻止,这个表的属性已经被废弃了。

SQL> 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                                      NUMBER

Oracle如何监控表的DML次数相关推荐

  1. mysql binlog 统计_对MySQL binlog日志解析,统计每张表的DML次数

    想要获取每天数据库每张表的DML的次数,统计热度表,可以使用该脚本 # coding:utf-8 # 解析binlog,统计热度表,表的DML个数 import sys import os # mys ...

  2. oracle 表变化监控,oracle 怎么 监控数据变化

    当前位置:我的异常网» Oracle技术 » oracle 怎么 监控数据变化 oracle 怎么 监控数据变化 www.myexceptions.net  网友分享于:2013-03-06  浏览: ...

  3. oracle查看dml锁表,【lock】我所认识的Oracle中的锁,DML锁、DDL锁、闩和内部锁。...

    这个问题很简单,你一定对锁有一个认识,但你未必对锁有一个明确的定义. 官方文档这样描述:Locks are mechanisms that prevent destructive interactio ...

  4. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

  5. Oracle性能监控脚本

    Oracle性能监控脚本 2011-09-05      0 个评论       收藏    我要投稿 1. 监控事例的等待 select event,sum(decode(wait_Time,0,0 ...

  6. Oracle性能监控脚本(sql)

    1. 监控事例的等待 select event,sum(decode(wait_Time,0,0,1)) "Prev",  sum(decode(wait_Time,0,1,0)) ...

  7. Oracle性能监控常用命令

    Oracle性能监控常用命令 --监控事例的等待 select event,        sum(decode(wait_Time, 0, 0, 1)) "Prev",      ...

  8. Oracle 基础篇 --- 表空间的操作

    2019独角兽企业重金招聘Python工程师标准>>> ###更改表空间 ####1 重命名表空间 将表空间 /home/oracle/app/oracle/product/11.2 ...

  9. Oracle 数据库整理表碎片

    Oracle 数据库整理表碎片 转载:http://kyle.xlau.org/posts/table-fragmentation.html 表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎 ...

最新文章

  1. iOS开发关于block学习的总结
  2. python web为什么不火-pythonweb为什么不火-问答-阿里云开发者社区-阿里云
  3. SAP Spartacus ComponentData的提前subscription
  4. 囧囧西游之大闹天宫java_《囧囧西游之大闹天宫》攻略(1)
  5. Window下更新python pip源
  6. 服务间的通信 RestTemplate和Feign
  7. java sort 插入排序_插入排序(insertSort)
  8. jpa 表注释和字段注释_JPA注释–Hibernate注释
  9. SharePoint 取消分享时的默认发邮件
  10. HDU1712:ACboy needs your help(分组背包)
  11. 28 岁字节程序员退休,财务自由
  12. 论文笔记_S2D.68_深度补全网络
  13. wordpress and theme
  14. 5V转24V差分信号转TTL电平脉冲信号隔离变送器
  15. 爱签电子合同:湖北率先实现电子印章跨省互认
  16. 使用 Telnet 手动接收邮件 (基于 macOS 系统)
  17. 微信如何查看是否被删好友,这4种方法简单快捷!
  18. PLC可编程控制器控制热水供暖循环系统实训
  19. 前端jQuery获取当前日期及前一周或者后一周的日期
  20. 【开源】F2FS技术拆解

热门文章

  1. go string 去除引号_一起攻克面试难关:Go 面试每天一篇(第 71 天)
  2. Deeplearnng.AI第四部分第一周、卷积神经网络
  3. 【工作分解法】IT人,你的工作“轻松”么?
  4. linux相关(find/grep/awk/sed/rpm)
  5. kubernetes实战篇之创建密钥自动拉取私服镜像
  6. assert.notStrictEqual()详解
  7. WPF整理-为User Control添加依赖属性
  8. ShellCode入门(提取ShellCode)
  9. Linux GDB常用命令一栏
  10. SQL Server 自增字段重置