专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle技术

怎么快速又准确地获取数据量(或增量)

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
如何快速又准确地获取数据量(或增量)
目前在做一个数据库监控系统,需要每天统计每张表的数据量,然后呈现每天的数据增量。数据库数据量为上亿级,因为是每天统计一次,所以本来想在晚上用count(*)来统计。但是对方说晚上他们还要跑很多其他任务,不能为了统计占用大量性能,而且count甚至可能跑不完,所以不让用count,现在改成在dba_tables里取num_rows的方法来获取数据量。跑了几天后,他们又嫌数据量不准确,大多数表统计出来的增量都是0,他们要我找出又快又准确(相对)的解决方案,求解这该怎么做?
------解决思路----------------------
执行命令
analyze table t1 compute statistics for table;  -->user_tables
(只对表的总体信息进行统计,比如行数多少等,不涉及到表字段)
执行之后获取num_rows

没测试过执行效率,我这手边也没有海量数据的表
你可以找个表先试试,看看速度怎么样
------解决思路----------------------
数据表有没有用到自增序列号,晚上取对应 sequence 的 CURRVAL。
------解决思路----------------------
这些表是不是每天只是插入操作?
给这些表增加插入时间的字段,时间列的赋值可以使用触发器实现,不需修改前台程序
然后时间列加上索引,利用时间条件查找当天的增量
注意时间列上不要使用函数,否则不走索引
where col>=trunc(p_date) and col<trunc(p_date)+1
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: