物化视图日志与增量刷新

2023-05-16

一、    物化视图日志结构

Oracle 的物化视图的快速刷新要求必须建立物化视图日志,通过物化视图日志可以实现增量刷新功能。

物化视图日志的名称为MLOG$_后面跟基表的名称,如果表名的长度超过20位,则只取前20位,当截短后出现名称重复时,Oracle会自动在物化视图日志名称后面加上数字作为序号。

      物化视图日志在建立时有多种选项:可以指定为ROWIDPRIMARY KEYOBJECT ID几种类型,同时还可以指定SEQUENCE或明确指定列名。上面这些情况产生的物化视图日志的结构都不相同。

 WITH 选项                

任何物化视图都会包括的4列:
SNAPTIME$$:用于表示刷新时间。
DMLTYPE$$:用于表示DML操作类型,I表示INSERTD表示DELETEU表示UPDATE
OLD_NEW$$:用于表示这个值是新值还是旧值。NEW)表示新值,OLD)表示旧值,U表示UPDATE操作。
CHANGE_VECTOR$$:表示修改矢量,用来表示被修改的是哪个或哪几个字段。
如果WITH后面跟了ROWID,则物化视图日志中会包含:M_ROW$$:用来存储发生变化的记录的ROWID
如果WITH后面跟了PRIMARY KEY,则物化视图日志中会包含主键列。
如果WITH后面跟了OBJECT ID,则物化视图日志中会包含:SYS_NC_OID$:用来记录每个变化对象的对象ID
如果WITH后面跟了SEQUENCE,则物化视图日子中会包含:SEQUENCE$$:给每个操作一个SEQUENCE号,从而保证刷新时按照顺序进行刷新。
如果WITH后面跟了一个或多个COLUMN名称,则物化视图日志中会包含这些列。使用with column将自动添加主键,不能再添加primary key选项否则报如下错误:

SQL> create materialized view log on emp with(ename),primary key ;

 

create materialized view log on emp with(ename),primary key

 

ORA-00922: 选项缺失或无效

 

SQL> create materialized view log on emp with(ename) ;

 

Materialized view log created

OBJECT ID 仅针对object table

NEW VALUES选项

设置 including new values物化视图日志将旧值和新值,update将产生两条记录

二、    通过dbms_mview.explain_mview反向退出物化视图日志需要以上哪些选项

dbms_mview.explain_mview能帮助确认哪些是对物化视图是可行的哪些是不可行的,比如像物化视图是否可以增量刷新。增量刷新还需要什么条件,比如物化视图日志需要添加哪些选项。

dbms_mview.explain_mview支持查询语句,物化视图视图创建语句和物化视图,对于复杂的查询语句,可以先以BUILD DEFERRED方式创建,再使用dbms_mview.explain_mview进行分析

SQL> @$ORACLE_HOME/rdbms/admin/utlxmv.sql

 

Table created.

SQL> desc mv_capabilities_table

Name            Type           Nullable Default Comments

--------------- -------------- -------- ------- --------

STATEMENT_ID    VARCHAR2(30)   Y                        

MVOWNER         VARCHAR2(30)   Y                        

MVNAME          VARCHAR2(30)   Y                        

CAPABILITY_NAME VARCHAR2(30)   Y                        

POSSIBLE        CHAR(1)        Y                        

RELATED_TEXT    VARCHAR2(2000) Y                        

RELATED_NUM     NUMBER         Y                        

MSGNO           INTEGER        Y                        

MSGTXT          VARCHAR2(2000) Y                        

SEQ             NUMBER         Y  

SQL> exec dbms_mview.explain_mview('MV_EMP');

 

PL/SQL procedure successfully completed

 

SQL> commit;

 

Commit complete

 

SQL> select * from mv_capabilities_table;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SQL> select * from MV_CAPABILITIES_TABLE ;

 

STATEMENT_ID                   MVOWNER                        MVNAME                         CAPABILITY_NAME                POSSIBLE RELATED_TEXT                                                                     RELATED_NUM                                   MSGNO MSGTXT                                                                                  SEQ

------------------------------ ------------------------------ ------------------------------ ------------------------------ -------- -------------------------------------------------------------------------------- ----------- --------------------------------------- -------------------------------------------------------------------------------- ----------

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            PCT                            Y                                                                                                                                                                                                                                       1

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_COMPLETE               Y                                                                                                                                                                                                                                    1002

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST                   N                                                                                                                                                                                                                                    2003

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REWRITE                        N                                                                                                                                                                                                                                    3004

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            PCT_TABLE                      Y        TCHOSPDAYDETAILH                                                                         434                                                                                                                                4005

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_INSERT      N        EOSADMIN.TCHOSPDAYDETAILH                                                                                                       2081 mv log does not have all necessary columns                                             5006

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_INSERT      N                                                                                                                                        2164 the materialized view is BUILD DEFERRED                                                5007

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ONETAB_DML  N        FSCALESELFEE                                                                             393                                    2143 SUM(expr) without COUNT(expr)                                                          6008

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ONETAB_DML  N        FOVERPRICESELFEE                                                                         343                                    2143 SUM(expr) without COUNT(expr)                                                          6009

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ONETAB_DML  N        SELFPAYMONEY                                                                             227                                    2143 SUM(expr) without COUNT(expr)                                                          6010

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ONETAB_DML  N        TOTALMONEY                                                                               193                                    2143 SUM(expr) without COUNT(expr)                                                          6011

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ONETAB_DML  N        SUMAMOUNT                                                                                162                                    2143 SUM(expr) without COUNT(expr)                                                          6012

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ONETAB_DML  N                                                                                                                                        2146 see the reason why REFRESH_FAST_AFTER_INSERT is disabled                               6013

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ONETAB_DML  N                                                                                                                                        2143 SUM(expr) without COUNT(expr)                                                          6014

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ANY_DML     N        EOSADMIN.TCHOSPDAYDETAILH                                                                                                       2165 mv log does not have sequence #                                                        7015

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_AFTER_ANY_DML     N                                                                                                                                        2161 see the reason why REFRESH_FAST_AFTER_ONETAB_DML is disabled                           7016

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REFRESH_FAST_PCT               N                                                                                                                                        2164 the materialized view is BUILD DEFERRED                                                8017

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REWRITE_FULL_TEXT_MATCH        N                                                                                                                                        2164 the materialized view is BUILD DEFERRED                                                9018

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REWRITE_PARTIAL_TEXT_MATCH     N                                                                                                                                        2164 the materialized view is BUILD DEFERRED                                               10019

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REWRITE_GENERAL                N                                                                                                                                        2164 the materialized view is BUILD DEFERRED                                               11020

 

STATEMENT_ID                   MVOWNER                        MVNAME                         CAPABILITY_NAME                POSSIBLE RELATED_TEXT                                                                     RELATED_NUM                                   MSGNO MSGTXT                                                                                  SEQ

------------------------------ ------------------------------ ------------------------------ ------------------------------ -------- -------------------------------------------------------------------------------- ----------- --------------------------------------- -------------------------------------------------------------------------------- ----------

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            REWRITE_PCT                    N                                                                                                                                        2164 the materialized view is BUILD DEFERRED                                               12021

                               EOSADMIN                       MV_TCHOSPDAYDETAILH            PCT_TABLE_REWRITE              Y        TCHOSPDAYDETAILH                                                                         434                                                                                                                               13022

 

22 rows selected

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15747463/viewspace-1182449/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15747463/viewspace-1182449/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

物化视图日志与增量刷新 的相关文章

  • Fiddler抓取手机APP报文

    Http协议代理工具有很多 xff0c 比如Burp Suite Charles Jmeter Fiddler等 xff0c 它们都可以用来抓取APP报文 xff0c 其中charles和Burp Suite是收费的 xff0c Jmete
  • 使用Jmeter抓取手机APP报文并进行APP接口测试

    Jmeter是一个比较常用的接口测试工具 xff0c 尤其是接口性能测试 当然它也可以用来测试手机APP的HTTP接口 xff0c 我在Fiddler抓取手机APP报文 和 接口测试代理工具charles mock测试 分别介绍了Fiddl
  • 禅道二次开发技巧

    本文记录一些进行禅道二次开发的技巧 目录 代码调试方法1 xff1a error log方法方法2 xff1a file put contents方法方法3 xff1a a var 方法 禅道扩展技巧1 读取当前用户2 读取当前模块方法名3
  • git merge 和 git rebase 的区别

    Git版本控制中 xff0c git rebase 和 git merge 这两个命令都可以用来集成从一个分支和另一个分支的更改 它们是两种不同的合并方法 xff0c 本文将介绍它们的差异 git rebase 和 git merge 主要
  • SVN项目迁移到Git方法

    本文记录如何将SVN项目迁移到Git xff0c 并保留提交日志信息 目录 Git和SVN差异环境准备Git安装 配置 项目迁移1 将源SVN库转换到Git本地仓库2 添加Git远程库地址3 推送代码到Git 常见错误参考文档 Git和SV
  • Python日志系统logging使用介绍

    日志记录对于软件开发调试和运行都非常重要 Python标准库提供了一个日志记录系统 xff0c 可以很方便的在python项目中添加日志记录 本文将详细介绍如何使用python的 logging 模块来记录日志 目录 基础使用日志级别基本配
  • xrdp连接太多后,连接不上的解决方法

    因为每次都是新建连接 xff0c 端口不断被占用 默认session个数10个 有一个最简单的 xff0c 但是不推荐的办法 xff0c 就是把最大连接数改大 xff0c 比如原来是10 xff0c 就改为100 这种方式治标不治本 xff
  • Python中 os.popen、os.system和subprocess.popen方法介绍

    Python 提供了多种与操作系统交互的方法 xff0c 比如os模块中的popen和system方法 xff0c 此外 xff0c Python subprocess模块中的Popen类也提供了与操作系统交互的方法 xff0c 使用起来更
  • 性能测试工具 IxChariot:Tcl脚本调用方法介绍

    ixChariot是一款功能强大的性能测试软件 xff0c 可用来测试有线和无线性能 xff0c 可以模拟真实应用程序流量 xff0c 并提供关键性能指标 xff0c 包括吞吐量 丢包 抖动 延迟 MOS等 本文简单介绍如何使用IxChar
  • 代码评审平台Gerrit安装配置方法介绍

    Gerrit是一款开源免费的基于 web 的代码审查工具 xff0c 是基于 Git 的版本控制系统 在代码入库之前对开发人员的提交进行审阅 xff0c 检视通过的代码才能提交入库 本文记录如何安装部署gerrit平台 目录 Gerrit简
  • Windows远程执行进程工具psexec和wmiexec介绍

    在自动化测试或者自动化工具开发中 xff0c 通常需要向其它电脑或者服务器发送指令 xff0c 比如Windows发送命令到Linux服务器开启某个服务进程 xff0c 或者读取状态信息 xff0c 我们可以使用ssh协议实现 如果Wind
  • ubuntu下连接小米2

    一 usb连接 xff1a 在Ubuntu挂载使用MTP设备步骤如下 xff1a 1 将MTP设备连接至PC机 2 如果是第一次使用MTP设备需要安装以下软件 xff0c 否则可以跳过此步骤 xff1a sudo apt get insta
  • interp2函数

    interp2 功能 二维数据内插值 格式 1 ZI 61 interp2 X Y Z XI YI X Y是原始数据 xff0c 相当于坐标 xff0c 类似于meshgrid的坐标范围 Z是在上述坐标下的数值 xff0c 也就是在坐标 x
  • RoboMaster视觉教程(0)绪论

    背景 大四毕业了 xff0c 想着大学四年也需要总结一下 就从RoboMaster这个比赛写起吧 我是大二参加的比赛 xff0c 做视觉识别部分 当时的想法很简单 xff0c 因为很喜欢Linux不想焊板子调电控就参加了视觉部分 xff08
  • RoboMaster视觉教程(5)目标位置解算(通过像素点获取转角)

    RoboMaster视觉教程 xff08 5 xff09 目标位置解算 xff08 通过像素点获取转角 xff09 概览直接使用像素坐标的缺陷摄像头标定根据小孔成像原理得到需要的转角角度测量验证 概览 在识别到目标后 xff0c 有一个很重
  • linux shell编程时bad substitution的解决办法

    今天在练习shell编程 xff0c 之前在系统中增加了很多stu 的用户 xff0c 现在想把这些用户名都找出来 xff0c 于是用了下面的几行代码 xff1a find stu users for i in awk F 34 34 39
  • docker安装Rstudio

    下载 xff1a docker pull rocker rstudio 4 0 4 而Rstudio官方提供了带不同R版本的镜像供使用 xff0c 点击https hub docker com r rocker rstudio tags即可
  • Debian下virtualBox增强功能出错的注意事项

    安装好Debian后 xff0c virtualBox下选择安装增强功能 xff1a 在 设备 菜单中选择 安装增强功能 xff0c 桌面上出现一个 VBOXADDITIONS 4 1 6 74713 图标 打开终端 xff0c 切换到ro
  • Seata分布式事务方案--AT(Auto Transaction)模式

    在业务发展初期 xff0c 一块大饼 的单业务系统架构 xff0c 能满足基本的业务需求 但是随着业务的快速发展 xff0c 系统的访问量和业务复杂程度都在快速增长 xff0c 单系统架构逐渐成为业务发展瓶颈 xff0c 解决业务系统的高耦
  • 使用maven构建jar包并拷贝到指定目录

    小记 xff1a 主要是为了迎合公司微服务项目 xff0c 同时是对已有技术的实践整理 使用spring boot maven plugin构建构建jar包 xff1b 使用maven surefire plugin跳过测试类 xff1b

随机推荐

  • mfc的CTreeCtrl控件实现windows的资源管理器

    BOOL Cwp8MtpTestDlg OnInitDialog CDialog OnInitDialog 设置目录树样式 DWORD dwStyle 61 GetWindowLong m pcTreeCtrl m hWnd GWL STY
  • linux安装maven私服

    下载Nexus Download Archives Repository Manager OSS 上面的地址暂时下载不了 使用百度云盘 百度网盘 链接不存在 提取码zw6g 安装需要jdk请先安装jdk 1 下载上传到服务器上并解压 nex
  • springboot设置并获取启动参数

    springboot设置参数并获取参数的方式 下面以端口号为例 设置端口号的方式有三种 xff1a 1 xff09 通过java程序启动命令行参数设置或者是idea的Program arguments设置 java jar test jar
  • c# 常量(const) 使用的注意事项

    在我们编码的过程 xff0c const 是我们经常用到的一种声明类型 xff0c 如果不了解const的运行机制 xff0c 有时候会发生一些莫名其妙的bug 可能让我们掉入深坑中 接下来我们一起看看常量的应用吧 xff01 1 常量默认
  • 20210724-flask-跨域调用问题-blocked by CORS policy

    问题背景 xff1a flask服务启动后 xff0c 用webstorm的项目去访问flask的服务接口 xff0c 提示 has been blocked by CORS policy xff0c 这个是因为服务器没有开启允许跨域请求
  • MWAN3报:interface vwan1 is error and tracking is active错误的解决

    当配置完MWAN3后 负载均衡 详细信息页面始终报错 interface vwan1 is error and tracking is active 的解决方法 升级mwan3 配合脚本 开机后WAN口获取到正确IP后 重启mwan3解决
  • Ubuntu14.04+OpenStackMitaka版本+PCIpassthrough(透传)的GPU直通之路

    显卡 xff1a GeForce GTX 1060 root 64 computer lspci nn grep NVIDIA 01 00 0 VGA compatible controller NVIDIA Corporation Dev
  • git与 github连接

    简单记录下自己琢磨git的运用 和 git 与 github账户的连接 xff0c 本人是在ubuntu操作系统下操作的 xff08 除了git安装部分同样使用与windows xff09 如果系统为windows 一下所有在终端输入的指令
  • 给windows server中的“未识别的网络”或“无法识别的网络”设置网络位置类型...

    在windows server中 xff0c 如果网络没有被正确的识别 xff0c 那么就需要手工设置一下网络位置类型 将 公用网络 指定设置为 专用网络 控制面板 系统和安全 管理工具 本地安全策略 网络列表管理器策略 网络 网络位置 x
  • MySQL group by后取每个分组中最新一条数据

    一 需求 MySQL group by后取每个分组中最新一条数据 二 实现 1 xff09 方案1 xff1a 使用min 和max 方法 1 group by后取每个分组中最新一条数据 SELECT MAX test id FROM te
  • 【Debian】设置代理服务器

    注意所有ip都要加上http etc profile System wide environment and startup programs for login setup Functions and aliases Go in etc
  • Ubuntu设置开机启动找不到rc.local的问题

    1 使用runlevel或者who r查看服务器的运行级别 xff0c 2 根据运行级别查看 ls lh etc rc d rc X d XXX gt rc local xff0c 所指向的rc local文件是哪个 默认在 etc rc
  • /usr/bin/env: 'bash\r': No such file or directory

    是由于windows格式的shell多了个 r 替换掉就可以了 https stackoverflow com questions 29045140 env bash r no such file or directory 或者直接在Lin
  • Ubuntu登陆不进去(已解决)

    Ubuntu一直在登陆界面循环 xff1a 登陆密码是正确的 xff0c 但是登陆后自动退回登陆界面 Ctrl 43 Alt 43 F1 F6进入命令行界面 xff0c 尝试startx启动桌面 xff0c 提示 xff1a could n
  • Map内存泄露问题

    如下代码Map的key为一个对象 xff0c 对象重写hashcode并且根据对象属性变化 xff0c 如果对象的属性值发生变化 xff0c 对象的hashcode也会变化 xff0c 就不能取出原来的值 xff0c 最终导致资源浪费 im
  • SQL语句、PL/SQL语句、SQL*PLUS语句结束符号

    xff08 1 xff09 SQL语句以 xff1b 或者 结束语句 通常情况是以 xff1b 结束语句 xff08 2 xff09 PL SQL语句以 结束语句 xff08 3 xff09 SQL PLUS语句以换行符结束语句
  • Debian 9 Stretch国内常用镜像源

    随着Debian 9的普及 xff0c 但由于伟大的墙的存在 xff0c 那就有必要整理一下国内的镜像站点 1 使用说明 一般情况下 xff0c 修改 etc apt sources list文件 xff0c 将Debian的默认源地址改成
  • docker分布式部署pyspider爬虫系统

    阅读准备 docker基础命令 xff0c docker compose基础pyspider基础 如果您不熟悉上面的内容 xff0c 可以先网上查阅有关资料 1 创建网络接口 首先 xff0c 创建一个Driver为bridge的网络接口
  • iOS 导航控制器、导航条、导航项、控制器的关系

    常见的APP的页面结构 xff0c 分为两个横向和纵向两个维度 xff0c 最为经典的就是横向维度采用UITabBarController xff0c 纵向维度采用UINavigationController 当然 xff0c 横向维度还可
  • 物化视图日志与增量刷新

    一 物化视图日志结构 Oracle 的物化视图的快速刷新要求必须建立物化视图日志 xff0c 通过物化视图日志可以实现增量刷新功能 物化视图日志的名称为 MLOG 后面跟基表的名称 xff0c 如果表名的长度超过 20 位 xff0c 则只