Oracle数据库捕获数据变化量方法


Oracle 10g提供了两种激活方法,一种是对用户、一种是对表。

对用户进行实施方法:

  1. DBMS_STATS.ALTER_SCHEMA_TABLE_MONITORING (   
  2. ownname   VARCHAR2 DEFAULT NULL,   
  3. 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的。

相关内容