技术开发 频道

监控表的dml操作

    【IT168 技术文档】在调优过程中,经常需要了解某张表,特别是大表的一些情况.启动表监控是常用手段之一.

    环境:Linux as 3/Oracle10.2.0.1

    测试过程如下:

    16:52:14 test>create table test(a number);

    表已创建。

    16:52:24 test>alter table test monitoring;--开始监控

    表已更改。

    16:52:35 test>insert into test values(1);

    已创建 1 行。

    16:52:46 test>insert into test values(2);

    已创建 1 行。

    16:52:49 test>insert into test values(3);

    已创建 1 行。

    16:52:51 test>insert into test values(4);

    已创建 1 行。

    16:52:54 test>insert into test values(5);

    已创建 1 行。

    16:52:56 test>commit;

    提交完成。

    16:53:00 test>update test set a = 8 where a = 4;

    已更新 1 行。

    16:53:22 test>update test set a = 10 where a = 5;

    已更新 1 行。

    16:53:28 test>commit;

    提交完成。

    16:53:30 test>delete test where a < 5;

    已删除3行。

    16:53:44 test>commit;

    提交完成。

    16:53:46 test>truncate table test;

    表已截掉。

    16:53:51 test>exec dbms_stats.flush_database_monitoring_info;--通过包来刷新数据库监控信息

    PL/SQL 过程已成功完成。

    16:54:12 test>select table_name,inserts,updates,deletes,truncated from sys.dba_tab_modifications;

    TABLE_NAME INSERTS UPDATES DELETES TRU

    ============================== ======= ======= ======= ===

    TEST 5 2 3 YES

    16:54:24 test>alter table test nomonitoring;--取消监控,这个命令会把sys.dba_tab_modifications表中的监控信息清空。

    表已更改。

    16:54:58 test>select table_name,inserts,updates,deletes,truncated from sys.dba_tab_modifications;

    未选定行

    16:55:00 test>

    总结:

    通过这个测试可以看出,我们可以在实际工作中对表进行监控。

    监控的步骤如下:

    1) 开始监控命令:alter table test monitoring

    2) 实际对表的一些操作

    3) 通过包来刷新数据库监控信息,dbms_stats.flush_database_monitoring_info

    4) 查询对表的操作信息,sys.dba_tab_modifications

    5) 取消监控命令alter table test nomonitoring,这个命令会把sys.dba_tab_modifications表中的监控信息清空。

0
相关文章