保险数据库

【挑战问题】DB2物化查询表(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

24同行回答

start2000start2000系统架构师ABB
很多时候refresh以后还紧接着一个runstats.显示全部
很多时候refresh以后还紧接着一个runstats.收起
互联网服务 · 2011-05-19
浏览1186
drdb2drdb2系统工程师se
分享多年前用的一个简单script (因为早年MQT有bug, 特别是在大系统上with DPF; Had to keep it simple)db2 +c "alter table mqtname activate not logged initially"db2 +c "refresh table mqtname"db2 commit显示全部
分享多年前用的一个简单script (因为早年MQT有bug, 特别是在大系统上with DPF; Had to keep it simple)
db2 +c "alter table mqtname activate not logged initially"
db2 +c "refresh table mqtname"
db2 commit收起
互联网服务 · 2011-05-19
浏览1198
start2000start2000系统架构师ABB
对提高特定的查询性能很有用,最近也在用.显示全部
对提高特定的查询性能很有用,最近也在用.收起
互联网服务 · 2011-05-18
浏览673

    提问者

    weixiaom
    高级架构师泰康养老保险股份有限公司
    擅长领域: 数据库云计算信创

    相关问题

    相关资料

    相关文章

    问题状态

  • 发布时间:2011-05-18
  • 关注会员:1 人
  • 问题浏览:13496
  • 最近回答:2011-09-07
  • X社区推广