分布式 DBA:使用物化查询表
2009-11-14 00:00:00 来源:WEB开发网核心提示:对于数据库管理员而言,数据库应用程序的性能是一项最为重要的因素,分布式 DBA:使用物化查询表,显著缩短决策支持查询响应时间的一种方法是使用物化查询表 (MQT),在本期文章中,基本表越大,响应速度的潜在改善空间就越大,我将讨论 MQT 的概念并演示如何创建和填充系统维护和用户维护的 MQT,我还将分析一些能从 MQT
对于数据库管理员而言,数据库应用程序的性能是一项最为重要的因素。显著缩短决策支持查询响应时间的一种方法是使用物化查询表 (MQT)。
在本期文章中,我将讨论 MQT 的概念并演示如何创建和填充系统维护和用户维护的 MQT。我还将分析一些能从 MQT 中受益的场景。
什么是 MQT ?
MQT 的定义依查询结果而定。可以认为 MQT 是一种物化视图,因为 MQT 的数据来自一个或多个基本表。其差异在于如何生成和存储 MQT 数据。通常,视图的数据是每次在引用视图时通过对其所依托的主体执行查询而生成的;数据位于视图所引用的底层基本表中。MQT 数据是定期(由您控制)或在指定时间点通过对 MQT 所依托的主体执行查询而生成的;数据位于 MQT 内部。与任何其他表相类似,MQT 可以有索引,并且 RUNSTATS 实用工具可以用于生成和存储关于 MQT 的统计数据。
MQT 提供了一种强大的方式来改善复杂查询的响应速度,特别是执行以下一个或多个操作的查询:
在一个或多个维度度上聚合数据
结合或聚合一组表
执行重复计算
执行资源密集型扫描
访问数据的公共子集 —— 也就是说,从 “热” 垂直或水平数据库分区检索数据
在分区的数据库环境中从表或表的一部分检索数据
MQT 的知识已紧密集成到 IBM DB2 SQL 和 XQuery 编译器中。在此查询重写阶段,DB2 优化器将匹配查询与已有 MQT 并确定是否为访问基本表的查询替换 MQT。(如果使用 MQT,则 Explain 工具可以提供关于所选 MQT 的信息)。基本表越大,响应速度的潜在改善空间就越大,因为 MQT 的增长速度将慢于它的底层基本表。
创建 MQT
创建 MQT 所采用的方法是执行特殊格式的 CREATE TABLE SQL 语句:
赞助商链接