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. thinkphp5项目--个人博客(六)

    thinkphp5项目--个人博客(六) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  2. (VC)搭建OpenGL编程环境

    1.下载glut工具包 opengl需要用到的库.下载glut: http://pan.baidu.com/s/1i4c8sHf 2.安装glut a)解压上面下载到的glut工具包后会得到5个文件, ...

  3. T_SQL 日期函数

    日期函数基数表达式的日期和时间或者是从时间间隔中返回值. GETDATE(),返回当前系统的日期和时间.例: SELECT GETDATE();  结果为:2010-05-18 15:53:08.92 ...

  4. HDU 1166 敌兵布阵(线段树单节点更新 区间求和)

    http://acm.hdu.edu.cn/showproblem.php?pid=1166 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Dere ...

  5. 4、Go for循环

    package main import "fmt" func main(){ //for 循环是go语言唯一的循环结构,分为三种类型 //第一种 类似while i:=1 for ...

  6. 冒泡排序php

    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <b ...

  7. 【agc004f】Namori Grundy

    那个问一下有人可以解释以下这个做法嘛,看不太懂QwQ~ Description 有一个n个点n条边的有向图,点的编号为从1到n. 给出一个数组p,表明有(p1,1),(p2,2),…,(pn,n)这n ...

  8. bzoj1612 Usaco08 Jan 牛大赛

    水题模拟 建一个图,每两个牛进行比赛就连一条边,然后两遍dfs求出比他弱和比他强的牛,最后如果相加数量等于n,说明他能与全部的牛进行比较,排名确定. #include<bits/stdc++.h ...

  9. JDBC连接SQL Server 2005 报错Connection refused: connect

    com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败.错误:“Connect ...

  10. easyui combobox 设置值 顺序放在最后

    easyui combobox 设置值 顺序放在最后 如果设置函数.又设置选中的值,注意顺序, 设置值需要放到最后,否则会设置了之后又没有了: $('#spanId'+i).combobox(res) ...