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的。