日期:2014-05-16  浏览次数:20525 次

oracle数据库捕获数据变化量方法
Oracle10g提供了两种激活方法,一种是对用户、一种是对表。
对用户进行实施方法:
  DBMS_STATS.ALTER_SCHEMA_TABLE_MONITORING (
  ownname   VARCHAR2 DEFAULT NULL,
  monitoring BOOLEAN DEFAULT TRUE);


对单表实施的方法(设置表的MONITORING属性)
 Alter table <table_name> (MONITORING/NOMONITORING)

查询该表数据变化结果
select * from user_tab_modifications;


通过以上信息可以明确的计算出,在某个时间段内一个表数据变化情况。(得知每个被monitor的表增删改了多少条记录,据测试还是比较准确的) 

如果user_tab_modifications视图没有更新,在执行完DML以后,9i中可以通过执行下面的语句强制更新。默认是15分钟自动更新一次。
exec dbms_stats.FLUSH_DATABASE_MONITORING_INFO();

在10g中,如果初始化参数statistics_level是TYPICAL或者ALL的话,那么表是自动被monitor的。