Oracle如何监控表的DML次数
浏览:2930次 出处信息
在数据库技术大会上,做了《构建高可用数据库监控系统》的分享以后,很多朋友对北斗如何实现表的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 NUMBER
建议继续学习:
- Mysql监控指南 (阅读:19963)
- 批量添加主机到cacti+nagios的监控报警系统中 (阅读:13443)
- 我常用的主机监控shell脚本 (阅读:11665)
- 7 天打造前端性能监控系统 (阅读:10370)
- 如何监控HP服务器硬件状态 (阅读:9259)
- Cacti 添加 Nginx 监控 (阅读:9125)
- Linux下三种常用的流量监控软件对比 (阅读:8851)
- Cacti 添加 Memcached 监控 (阅读:8290)
- Cacti 添加 Apache 监控 (阅读:7738)
- 你应该知道的16个Linux服务器监控命令 (阅读:6990)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Virtual Indexes
后一篇:ORACLE BITMAP INDEX >>
文章信息
- 作者:NinGoo 来源: NinGoo.net
- 标签: DML 监控
- 发布时间:2010-04-27 23:33:10
建议继续学习
近3天十大热文
-
[70] find命令的一点注意事项
-
[54] 读书笔记-壹百度:百度十年千倍的29条法则
-
[38] 小屏幕移动设备网页设计注意事项
-
[36] 卡诺模型―设计品质与设计价值的思考
-
[36] memory prefetch浅析
-
[31] Oracle bbed工具的编译
-
[23] 杨建:网站加速--Cache为王篇
-
[21] 在vim保存时获得sudo权限
-
[21] 程序员技术练级攻略
-
[20] 洋葱式信息安全观察:信息安全与业务浪涌