我的编程空间,编程开发者的网络收藏夹
学习永远不晚

DBA_TAB_MODIFICATIONS 视图学习

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

DBA_TAB_MODIFICATIONS 视图学习

通过测试来学习DBA_TAB_MODIFICATIONS视图的作用

DBA_TAB_MODIFICATIONS describes modifications to all tables in the database that have been modified since the last time statistics were gathered on the tables. Its columns are the same as those in "ALL_TAB_MODIFICATIONS".

DBA_TAB_MODIFICATIONS描述的是收集完统计信息之后的数据库中所有表的DML操作。
Note:
This view is populated only for tables with the MONITORING attribute. It is intended for statistics collection over a long period of time. For performance reasons, the Oracle Database does not populate this view immediately when the actual modifications occur. Run the FLUSH_DATABASE_MONITORING_INFO procedure in the DBMS_STATS PL/SQL package to populate this view with the latest information. The ANALYZE_ANY system privilege is required to run this procedure.
SQL> desc dba_tab_modifications;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 TABLE_OWNER                                        VARCHAR2(128)
 TABLE_NAME                                         VARCHAR2(128)
 PARTITION_NAME                                     VARCHAR2(128)
 SUBPARTITION_NAME                                  VARCHAR2(128)
 INSERTS                                            NUMBER    ##插入
 UPDATES                                            NUMBER  ##更新
 DELETES                                            NUMBER  ##删除
 TIMESTAMP                                          DATE
 TRUNCATED                                          VARCHAR2(3)  ##截断
 DROP_SEGMENTS                                      NUMBER

SQL> 
SQL> select * from v$version where rownum=1;

BANNER
--------------------------------------------------------------------------------
    CON_ID
----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
         0
SQL> create table t1 as select *  from dba_objects;

Table created.
SQL> select table_owner,table_name,inserts,UPDATES,deletes,timestamp,truncated,drop_segments from sys.dba_tab_modifications where table_name='T1';

no rows selected

SQL> update t1 set object_id=1 where object_id=30;

1 row updated.

SQL> select table_owner,table_name,inserts,UPDATES,deletes,timestamp,truncated,drop_segments from sys.dba_tab_modifications where table_name='T1';

no rows selected

SQL> exec dbms_stats.flush_database_monitoring_info;

PL/SQL procedure successfully completed.

SQL> select table_owner,table_name,inserts,UPDATES,deletes,timestamp,truncated,drop_segments from sys.dba_tab_modifications where table_name='T1';

TABLE_OWNER
--------------------------------------------------------------------------------
TABLE_NAME
--------------------------------------------------------------------------------
   INSERTS    UPDATES    DELETES TIMESTAMP               TRU DROP_SEGMENTS
---------- ---------- ---------- ----------------------- --- -------------
SYS
T1
         0          1          0 19-FEB-2018 06:59:33    NO              0

SQL> exec dbms_stats.flush_database_monitoring_info;

PL/SQL procedure successfully completed.

SQL> select table_owner,table_name,inserts,UPDATES,deletes,timestamp,truncated,drop_segments from sys.dba_tab_modifications where table_name='T1';

TABLE_OWNER
--------------------------------------------------------------------------------
TABLE_NAME
--------------------------------------------------------------------------------
   INSERTS    UPDATES    DELETES TIMESTAMP               TRU DROP_SEGMENTS
---------- ---------- ---------- ----------------------- --- -------------
SYS
T1
         0          1          0 19-FEB-2018 06:59:33    NO              0

SQL> exec dbms_stats.gather_table_stats('SYS','T1');

PL/SQL procedure successfully completed.

SQL> select table_owner,table_name,inserts,UPDATES,deletes,timestamp,truncated,drop_segments from sys.dba_tab_modifications where table_name='T1';

no rows selected

SQL> 

小结:
1、dml操作不提交,也会记录到视图中。
2、考虑到性能问题,我们需要手动flush,视图中才会有记录。
3、收集完统计信息,视图中相关表记录置空,与官方文档描述一样

测试二:

SQL> alter system set "_dml_monitoring_enabled"=false scope=memory;

System altered.

SQL> delete from t1;

90974 rows deleted.

SQL> select table_owner,table_name,inserts,UPDATES,deletes,timestamp,truncated,drop_segments from sys.dba_tab_modifications where table_name='T1';

no rows selected

SQL> exec dbms_stats.flush_database_monitoring_info;

PL/SQL procedure successfully completed.

SQL> select table_owner,table_name,inserts,UPDATES,deletes,timestamp,truncated,drop_segments from sys.dba_tab_modifications where table_name='T1';

no rows selected

SQL> 

小结:
关闭监视器以后,不管我们做任何操作,此视图都不会记录dml的相关操作。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

DBA_TAB_MODIFICATIONS 视图学习

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

dba_tables视图学习

DBA_TABLES描述数据库中的所有关系表。它的列与ALL_TABLES中的列相同。要收集此视图的统计信息,请使用DBMS_STATS包。
2022-11-30

MySQL学习笔记(10):视图

本文更新于2019-06-22,使用MySQL 5.7,操作系统为Deepin 15.4。目录为了便于描述,此处将创建视图的DDL复述一次,其已于“SQL”章节描述。CREATE [OR REPLACE] [ALGORITHM={UNDEFINED|MERGE
MySQL学习笔记(10):视图
2015-06-23

Oracle学习(五) --- 视图、序列、同义词、索引

1、视图1.1、什么是视图视图就是一个虚拟表,实体表的映射。什么时候使用视图在开发中,有一些表结构是不希望过多的人去接触,就把实体表映射为一个视图。(表结构简化)在项目过程中,程序员主要关注编码的性能、业务分析这方面。对于一些复杂的SQL语句,设计人员会提前把
Oracle学习(五) --- 视图、序列、同义词、索引
2019-06-02

nodejs可视化学习:事件循环【动图演示】

本篇文章带大家通过动画来学习Node事件循环,希望对大家有所帮助!
2022-11-25

Oracle学习笔记之视图及索引的使用

目录一、视图的使用1.概念2.视图分类3.视图语法4.视图实例 二、索引1.索引概念2.索引分类2.1、按物理存储方式分类2.2、按逻辑功能分类3.索引原则4.索引语法一、视图的使用1.概念视图概念: 视图是基于一个表或多个表或视图的逻
2022-07-19

微信小程序学习之常用的视图组件

但是最近由于开发人手不够,一个人开启全栈,一边写接口一边写页面,刚好项目中有一个需求,所以尝试使用自定义组件开发这块,下面这篇文章主要给大家介绍了关于微信小程序学习之常用的视图组件的相关资料,需要的朋友可以参考下
2022-11-13

Python学习路线图

文章转载自「开发者圆桌」一个关于开发者入门、进阶、踩坑的微信公众号Python学习路线图你可以通过百度云盘下载观看对应的视频链接: http://pan.baidu.com/s/1c2zLllA 密码: 6kjp好东西岂能独享,欢迎分享到你
2023-01-31

Python学习教程(Python学习视频_Python学习路线):Day06 函数和模块的使用

Python学习教程(Python学习视频_Python学习路线):函数和模块的使用在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解。事实上,上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案。想
2023-06-02

python学习——图形界面

Python支持多种图形界面的第三方库,包括:TkwxWidgetsQtGTK等等。但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用。本章简单介绍如何使用Tkinter进行GUI编程。T
2023-01-31

编程热搜

目录