用 DB2 说明工具深入理解物化查询表(MQT)刷新机制
2010-05-13 00:00:00 来源:WEB开发网在清单 3 的访问方案中我们可以看到,DB2 数据库管理器在执行这条 insert 语句的时候,不但向基表 basetable 中插入了数据(INSERT 操作符 3),而且同时向 MQT mqttab 执行了插入操作(INSERT 操作符 2),这就充分说明了采用即时刷新方式时对 MQT 的刷新是与基表的操作同时完成的。另外在 INSERT 操作符 2 的 detail 中可以看到 Estimated number of rows: 1,说明对于 MQT 的刷新是增量刷新。
需要提醒一下的是,由于是在 explain mode 下使用了插入操作,但实际上该插入操作并没有真正执行而只是生成了访问方案,所以如果此时查询 MQT 会发现无法找到这条新数据,下文中的各项操作都是与此类的情况。
接下来我们来看对基表的 update 和 delete 操作时的访问方案,使用的命令如清单 4 所示。
清单 4. 基表的 update 和 delete 操作
db2 set current explain mode explain
db2 "update basetable set c2=100 where c1=11"
db2exfmt -d MYDB -1 -e -o update1.exfmt
db2 "delete from basetable where c1=11"
db2exfmt -d MYDB -1 -e -o delete1.exfmt
db2 set current explain mode no
观察对基表的 update 和 delete 操作时的访问方案,我们会发现与清单 3 中 insert 操作时的访问方案相似,都是在对基表完成 update 或 delete 操作的同时相应的完成对 MQT 的刷新操作。读者可以在本文最后的下载链接中找到 update1.exfmt 和 delete1.exfmt 中的访问方案,限于篇幅不在正文部分显示。
最后,我们来看一下当用户手动的刷新 MQT 时其执行方案,使用的命令和访问方案如清单 5 所示。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接