Oracle视图user_tab_modifications

user_tab_modifications收集自采集信息以来被改变表的dml操作量数据,一个表只有数据量被改变10%以上才会被定期采集信息,也可以执行过程

DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO进行实时采集。

由于user_tab_modifications收集的信息是自第一次收集以来的信息,所以要了解某一段时间对某表的dml操作情况,应该做个快照差。

下面给个例子

现在有表t1
SQL> select * from t2;

        ID NAME
---------- --------------------------------
         1 scott
         2 fishcat

 

查询user_tab_modifications无记录说明没做任何信息收据

SQL> select * from user_tab_modifications where table_name='T2';

no rows selected

使用DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO更新下看看结果

SQL> conn / as sysdba
Connected.
SQL> grant ANALYZE any to scott;

Grant succeeded.

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL> select * from user_tab_modifications where table_name='T2';

no rows selected

可以看出依然没有结果

对t2插入一条数据看看

SQL> insert into t2 values(3,'xyc');

1 row created.

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL> select table_name,inserts,updates,deletes,timestamp,drop_segments from user_tab_modifications where table_name='T2';

TABLE_NAME                        INSERTS    UPDATES    DELETES TIMESTAMP    DROP_SEGMENTS
------------------------------ ---------- ---------- ---------- ------------ -------------
T2                                      1          0          0 20-FEB-13                0


可以看到一条insert记录inserts为1,下面继续


SQL> update t2 set name='xycxyc' where id=3;

1 row updated.

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL> select table_name,inserts,updates,deletes,timestamp,drop_segments from user_tab_modifications where table_name='T2';

TABLE_NAME                        INSERTS    UPDATES    DELETES TIMESTAMP    DROP_SEGMENTS
------------------------------ ---------- ---------- ---------- ------------ -------------
T2                                      1          1          0 20-FEB-13                0

SQL> insert into t2 values(3,'xyc');

1 row created.

SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

PL/SQL procedure successfully completed.

SQL> select table_name,inserts,updates,deletes,timestamp,drop_segments from user_tab_modifications where table_name='T2';

TABLE_NAME                        INSERTS    UPDATES    DELETES TIMESTAMP    DROP_SEGMENTS
------------------------------ ---------- ---------- ---------- ------------ -------------
T2                                      2          1          0 20-FEB-13                0

 

可以看到inserts和updates的更改

USER_TAB_MODIFICATIONS还记录了表是否被truncate和分区,子分区是否有删除过的记录,参考:

Related Views

  • DBA_TAB_MODIFICATIONS describes such information for all tables in the database.

  • USER_TAB_MODIFICATIONS describes such information for tables owned by the current user. This view does not display the TABLE_OWNER column.

Note:

These views are populated only for tables with the  MONITORING attribute. They are intended for statistics collection over a long period of time. For performance reasons, the Oracle Database does not populate these views immediately when the actual modifications occur. Run the  FLUSH_DATABASE_MONITORING_INFO procedure in the  DBMS_STATS PL/SQL package to populate these views with the latest information. The  ANALYZE_ANY system privilege is required to run this procedure.
ColumnDatatypeNULLDescription
TABLE_OWNERVARCHAR2(30) Owner of the modified table
TABLE_NAMEVARCHAR2(30) Name of the modified table
PARTITION_NAMEVARCHAR2(30) Name of the modified partition
SUBPARTITION_NAMEVARCHAR2(30) Name of the modified subpartition
INSERTSNUMBER Approximate number of inserts since the last time statistics were gathered
UPDATESNUMBER Approximate number of updates since the last time statistics were gathered
DELETESNUMBER Approximate number of deletes since the last time statistics were gathered
TIMESTAMPDATE Indicates the last time the table was modified
TRUNCATEDVARCHAR2(3) Indicates whether the table has been truncated since the last analyze (YES) or not (NO)
DROP_SEGMENTSNUMBER Number of partition and subpartition segments dropped since the last analyze
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值