DB2的物化视图MQT是基于查询结果定义的一个表,MQT中包括的数据来自MQT定义所基于的一个或多个表, 使用MQT能够显著提高查询的操作性能。

数据库的视图和MQT都是基于一个查询来定义的。每当视图被引用时,视图所基于的查询便会运行。

但MQT实际上会将查询结果存储为数据,您能够使用MQT中的这些数据。而不是使用底层表中的数据。

MQT 能够显著提高查询的性能,尤其是提高复杂查询的性能。

假设优化器确定查询或查询的一部分能够用一个 MQT 来解决,那么查询就能够被重写以便利用 MQT。

MQT 能够在创建表时定义。能够定义为由系统维护,也能够定义为由用户维护。

DATA INITIALLY DEFERRED 子句的意思是。在运行 CREATE TABLE 语句的时候,并不将数据插入到表中。
MQT 被创建好之后,就会处于检查暂挂(check pending)状态,在对它运行 SET INTEGRITY 语句之前。不能查询它。IMMEDIATE CHECKED 子句指定。必须依据用于定义该 MQT 的查询对数据进行检查,并刷新数据。

NOT INCREMENTAL 子句指定对整个表进行完整性检查。

这样的 MQT 中的数据是由系统维护的。

当创建这样的类型的 MQT 时,能够指定表数据是 REFRESH IMMEDIATE 还是 REFRESH DEFERRED。通过 REFRESH keyword能够指定怎样维护数据。DEFERRED 的意思是,表中的数据能够在不论什么时候通过 REFRESH TABLE 语句来刷新。

系统维护的 MQT,无论是 REFRESH DEFERRED 类型的还是 REFRESH IMMEDIATE 类型的,对它们的插入、更新或删除操作都是不同意的。可是。对于 REFRESH IMMEDIATE 类型的系统维护的 MQT,能够通过 对底层表的更改(即插入、更新或删除操作)来更新。

以下看一个样例

首先创建原始表

CREATE TABLE T (
ID INTEGER NOT NULL,
COL1 VARCHAR(128),
COL2 VARCHAR(128),
COL3 VARCHAR(128),
COL4 VARCHAR(128),
COL5 VARCHAR(128),
PRIMARY KEY (ID)
) ORGANIZE BY ROW;

创建MQT表

CREATE TABLE T_MQT ( ID, COL1, COL2, COL3 )
AS ( select ID, COL1, COL2, COL3 from T )
DATA INITIALLY DEFERRED REFRESH IMMEDIATE MAINTAINED BY SYSTEM;
SET INTEGRITY FOR T_MQT IMMEDIATE CHECKED FULL ACCESS;

写入数据到原始表中

insert into T(ID, COL1, COL2, COL3, COL4, COL5) values (1, 'col1', 'col2', 'col3', 'col4', 'col5');
insert into T(ID, COL1, COL2, COL3, COL4, COL5) values (2, 'col1', 'col2', 'col3', 'col4', 'col5');

查询原始表和MQT表。会发如今MQT表里也有数据了

select * from T;
select * from T_MQT;

原文链接:

p=160" target="_blank">DB2物化视图(Materialized Query Tables, MQT)

DB2物化视图(Materialized Query Tables, MQT)的更多相关文章

  1. DB2物化视图——MQT 物化查询表的正确使用(materialized query tables)

    我们今天主要向大家讲述的是DB2物化视图——MQT 物化查询表使用,以下就是对DB2物化视图之MQT物化查询表的正确使用的主要内容的详细描述,望大家在浏览之后会对其有更深的了解. MQT 的定义基于查 ...

  2. [terry笔记]物化视图 materialized view基础学习

    一.物化视图定义摘录:     物化视图是包括一个查询结果的数据库对像(由系统实现定期刷新数据),物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高了 ...

  3. 物化视图(materialized view) 实现数据迁移、数据定时同步

    近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...

  4. 详解Oracle数据货场中三种优化:分区、维度和物化视图

    转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的 ...

  5. Oracle性能调优之物化视图用法简介

    目录 一.物化视图简介 二.实践:创建物化视图 一.物化视图简介 物化视图分类 物化视图分类,物化视图语法和as后面的sql分为: (1) 基于主键的物化视图(主键物化视图) (2)基于Rowid的物 ...

  6. ClickHouse性能优化?试试物化视图

    一.前言 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS):目前我们使用CH作为实时数仓用于统计分析,在做性能优化的时候使用了 物化视图 这一特性作为优化手段,本文主 ...

  7. Oracle远程数据建物化视图(materialized)创建简单记录,以及DBLINK的创建

    目的:实现远程数据库访问及其相应表的定时同步 一.远程数据库dblink的创建 select * from dba_db_links; select * from user_sys_privs;--查 ...

  8. PostgreSQL物化视图(materialized view)

    1.创建视图 CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name [ (column_name [, ...] ) ] [ WITH ( sto ...

  9. Materialized Views 物化视图 -基础篇

    Materialized Views 物化视图 -基础篇 http://blog.csdn.net/elimago/article/details/5404019

随机推荐

  1. 4.Mocha的基本用法

    转自:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html 有了测试脚本以后,就可以用Mocha运行它.请进 ...

  2. 5. MongoDB基本操作语句

    转自:http://blog.51cto.com/shanqiangwu/1653577 #MongoDB中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”. ...

  3. UVa 12661 Funny Car Racing【 dijkstra 】

    题意:给出n个点,m条路,每条路用5个整数表示u,v,a,b,t u表示这条路的起点,v表示终点,a表示打开时间,b表示关闭时间,t表示通过这条道路需要的时间 看的紫书,因为边权不再仅仅是路上的时间, ...

  4. MPP的进化 - 深入理解Batch和MPP优缺点

    https://mp.weixin.qq.com/s/scXNfkpjktCZxBg3pYEUUA?utm_medium=hao.caibaojian.com&utm_source=hao.c ...

  5. watchpoint set variable

    watchpoint set variable string_weak_assign Watchpoint created: Watchpoint 3: addr = 0x10fcaa468 size ...

  6. UI Framework-1: views Windowing

    views Windowing views provides support for creating dialog boxes and other kinds of windows through ...

  7. 一篇文章助你理解Python3中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...

  8. MyBatis学习总结(17)——Mybatis分页插件PageHelper

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...

  9. 数据迁移工具kettle简单上手

    近期做了不少数据迁移工作,无一例外都是kettle做的,对于这些工具,我认为.够用就好,不用做特别多的研究(当然.除非你是这款工具的忠实粉丝,我相信这种没几个).kettle也不例外.在我看来就是不同 ...

  10. 弯道超车,换一个思路,避免addEventListener为同一个元素重复赋予事件

    addEventListener可以给同一个元素赋予多次同一个事件. 执行一次,就多一次事件效果.这不是我想要的. window.onload = function(){ var box = docu ...