保险数据库

【挑战问题】DB2物化查询表(MQT)经验点滴 欢迎讨论!

MQT 物化查询表 序言什么是物化查询表,作用是什么.物化查询表(MQT)的定义是以一次查询的结果为基础的。MQT 可以显著提高查询的性能。物化查询表可以显著提高查询的性能,尤其是提高复杂查询的性能。如果优化器确定查询或查询的一部分可以用一个 MQT 来解决,那么就会重写查询,...显示全部
MQT 物化查询表

序言

什么是物化查询表,作用是什么.

物化查询表(MQT)的定义是以一次查询的结果为基础的。MQT 可以显著提高查询的性能。

物化查询表可以显著提高查询的性能,尤其是提高复杂查询的性能。如果优化器确定查询或查询的一部分可以用一个 MQT 来解决,那么就会重写查询,以便利用 MQT。

但是我们在实际项目中要使用他, 为达到查询高效,和高性能和高稳定, 他以什么要的机制去刷新数据,和保证数据的高效性, 还有创建他有什么依赖和限制等等. 下面让我们一起来讨论

物化查询表简介

首先我们先介绍 物化查询表基本概念:

MQT

物化查询表(MQT)是一种以一次查询的结果为基础定义的表。包含在物化查询表中的数据来自定义物化查询表时所基于的一个或多个表。而 总结表(也称自动总结表,AST)对于 IBM? DB2? Universal Database?(UDB)for Linux、 UNIX? 和 Windows?(DB2 UDB)的用户来说应该感到比较熟悉,它们可以看作是特殊的 MQT。fullselect 是总结表定义的一部分,它包含一个 GROUP BY 子句,该子句总结 fullselect 中所引用表中的数据。


您可以将 MQT 看作一种物化的视图。视图和 MQT 都是基于一个查询来定义的。每当视图被引用时,视图所基于的查询便会运行。但是,MQT 实际上则是将查询结果保存为数据,您可以使用 MQT 中的这些数据,而不是使用底层表中的数据。


物化查询表可以显著提高查询的性能,尤其是提高复杂查询的性能。如果优化器确定查询或查询的一部分可以用一个 MQT 来解决,那么就会重写查询,以便利用 MQT。


MQT 可以在创建表时定义,或者定义为系统维护的 MQT,或者定义为用户维护的 MQT。下面的几个小节将介绍这两种类型的 MQT,另外再介绍总结表和 staging 表。后面的例子要求连接到 SAMPLE 数据库。如果您系统上还没有创建 SAMPLE 数据库,那么可以通过在命令行提示符下输入 db2sampl 命令来创建这个数据库。

收起
参与25

查看其它 23 个回答glf523451709的回答

glf523451709glf523451709系统工程师自动化所
上面讲的很细,我刚看了《DB2设计与性能优化》上面的MQT,上面就没说“ REFRESH IMMEDIATE MQT 要求查询的 select 列表中引用的每个表中至少有一个惟一键”,学习了,非常感谢
政府机关 · 2011-05-18
浏览729

回答者

glf523451709
系统工程师自动化所
擅长领域: 数据库存储数据恢复

glf523451709 最近回答过的问题

回答状态

  • 发布时间:2011-05-18
  • 关注会员:1 人
  • 回答浏览:729
  • X社区推广