WEB开发网
开发学院数据库DB2 用 DB2 说明工具深入理解物化查询表(MQT)刷新机... 阅读

用 DB2 说明工具深入理解物化查询表(MQT)刷新机制

 2010-05-13 00:00:00 来源:WEB开发网   
核心提示: 在清单 3 的访问方案中我们可以看到,DB2 数据库管理器在执行这条 insert 语句的时候,用 DB2 说明工具深入理解物化查询表(MQT)刷新机制(4),不但向基表 basetable 中插入了数据(INSERT 操作符 3),而且同时向 MQT mqttab 执行了插入操作(INSERT

在清单 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 所示。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:DB 说明 工具

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接