DB2物化视图(Materialized Query Tables, MQT)
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)的更多相关文章
- DB2物化视图——MQT 物化查询表的正确使用(materialized query tables)
我们今天主要向大家讲述的是DB2物化视图——MQT 物化查询表使用,以下就是对DB2物化视图之MQT物化查询表的正确使用的主要内容的详细描述,望大家在浏览之后会对其有更深的了解. MQT 的定义基于查 ...
- [terry笔记]物化视图 materialized view基础学习
一.物化视图定义摘录: 物化视图是包括一个查询结果的数据库对像(由系统实现定期刷新数据),物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高了 ...
- 物化视图(materialized view) 实现数据迁移、数据定时同步
近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...
- 详解Oracle数据货场中三种优化:分区、维度和物化视图
转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的 ...
- Oracle性能调优之物化视图用法简介
目录 一.物化视图简介 二.实践:创建物化视图 一.物化视图简介 物化视图分类 物化视图分类,物化视图语法和as后面的sql分为: (1) 基于主键的物化视图(主键物化视图) (2)基于Rowid的物 ...
- ClickHouse性能优化?试试物化视图
一.前言 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS):目前我们使用CH作为实时数仓用于统计分析,在做性能优化的时候使用了 物化视图 这一特性作为优化手段,本文主 ...
- Oracle远程数据建物化视图(materialized)创建简单记录,以及DBLINK的创建
目的:实现远程数据库访问及其相应表的定时同步 一.远程数据库dblink的创建 select * from dba_db_links; select * from user_sys_privs;--查 ...
- PostgreSQL物化视图(materialized view)
1.创建视图 CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name [ (column_name [, ...] ) ] [ WITH ( sto ...
- Materialized Views 物化视图 -基础篇
Materialized Views 物化视图 -基础篇 http://blog.csdn.net/elimago/article/details/5404019
随机推荐
- Linux 命令行光标快速选中移动快捷键
Ctrl+Alt+T 打开终端一些常用的终端快捷键:Ctrl+L 清空屏幕(功能相当于命令clear)Ctrl+U 剪切文本直到行的起始(可以用于清空行)Ctrl+K 剪切文本直到行的末尾Ctrl+Y ...
- [NOI2013模拟] BZOJ4705 棋盘游戏 解题报告(组合计数)
莫名打不开这道题的链接,请读者自行搜索 Description 有一个N*M的棋盘,初始每个格子都是白色的.行操作是指选定某一行,将这行所有格子的颜色取反(黑白互换).列操作是指选定某一列,将这列所有 ...
- 实时监控Cat之旅~配置Cat集群需要注意的问题
在配置cat集群时,有一些设置是我们应该注意的,从它的部署文档中我们可以看到相关信息,但说的还不够明确和重要,大叔今天总结一下Cat集群配置的注意事项 1 服务端datasources.xml用来设置 ...
- Servlet监听器及在线用户
Servlet中的监听器分为三种类型Ⅰ 监听ServletContext.Request.Session作用域的创建和销毁 (1)ServletContextListener (2)HttpSessi ...
- net实现ping的方法
class ServicePinger { private static readonly ILog log = LogManager.GetLogger(typeof(ServicePinger)) ...
- [bzoj4765]普通计算姬(分块+树状数组+DFS序)
题意 给定一棵n个节点的带权树,节点编号为1到n,以root为根,设sum[p]表示以点p为根的这棵子树中所有节点的权值和.计算姬支持下列两种操作: 1 给定两个整数u,v,修改点u的权值为v. 2 ...
- Oracle基础入门(三)
一:PLsql一些基本操作 调节plsql的字体大小 二:创建表,如果学过sql server的数据库就会发现其实Oracle跟的一些新建表和新增修改其实是差不多的 新建表 Create table ...
- HDU 3001 三进制状压DP
N个城市,M条道路,每条道路有其经过的代价,每一个城市最多能够到达两次,求走全然部城市最小代价,起点随意. 三进制状压.存储每一个状态下每一个城市经过的次数. 转移方程: dp[i+b[k]][k]= ...
- 思考一下activity的启动模式
在android里,有4种activity的启动模式.分别为:"standard" (默认) "singleTop" "singleTask" ...
- 数据库中的Convert
https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql Conversion failed ...