分布式 DBA:使用物化查询表
2009-11-14 00:00:00 来源:WEB开发网其中:
TableName标识将分配给所创建 MQT 的名称
SELECTStatement标识用于填充所创建 MQT 的 SQL 查询
可以创建两种不同类型的 MQT:系统维护 MQT 和用户维护 MQT。不能对系统维护 MQT 执行插入、更新和删除操作。但是,当对 MQT 所依托的所有底层表执行更改时,REFRESH IMMEDIATE 系统维护 MQT 会自动更新。REFRESH 关键字允许您控制如何维护 MQT 中的数据:REFRESH IMMEDIATE 指示对底层表的更改将级联到 MQT,而 REFRESH DEFERRED 表示仅当执行 REFRESH TABLE 语句时才会刷新 MQT 中的数据。
用户维护的 MQT 允许执行插入、更新或删除操作,并且可以使用导入或加载操作对其进行填充。但是,不能通过执行 REFRESH TABLE 语句来填充它们,也不能使用所指定的 REFRESH IMMEDIATE 选项来创建它们。从本质上说,用户定义的 MQT 是一个需要由 DBA 填充的概要表,但 DB2 优化器可用于改善查询性能。(如果不希望 DB2 优化器使用 MQT,只需通过用于创建 MQT 的 CREATE TABLE 语句指定 DISABLE QUERY OPTIMIZATION 选项)。
何时创建 MQT
应该如何确定 MQT 是否能提供价值?或者应该创建什么样的 MQT ? IBM DB2 Design Advisor 可以为您解答这些问题。使用您所提供的最新的数据库统计数据、DB2 优化器、快照监控信息和 / 或具体的查询或一组 SQL 语句(称作工作负载),Design Advisor 可以就为您推荐可改善性能的索引、MQT 或集群(MDC)表。索引、MQT 或 MDC 表;从中获取的统计信息;以及创建它们所需的 Data Definition Language (DDL) 语句都可以写入到用户创建的 ADVISE_INDEX 表中。
更多精彩
赞助商链接