WEB开发网
开发学院数据库DB2 DB2 中 MQT 的匹配原理及使用技巧 阅读

DB2 中 MQT 的匹配原理及使用技巧

 2010-03-31 00:00:00 来源:WEB开发网   
核心提示: 查询结果集是 MQT 的子集这种情况也很容易理解,当查询结果集是 MQT 的子集时,DB2 中 MQT 的匹配原理及使用技巧(4),这意味着查询需要的行与列在 MQT 中都能找到,而 DB2 只需要在对应 MQT 上执行剩余的谓词 (predicate) 及计算 (head expression

查询结果集是 MQT 的子集

这种情况也很容易理解。当查询结果集是 MQT 的子集时,这意味着查询需要的行与列在 MQT 中都能找到,而 DB2 只需要在对应 MQT 上执行剩余的谓词 (predicate) 及计算 (head expression) 即可。如图 2 所示,这种 MQT 只需要被计算一次就可以被多次重用。清单 3 则给出了该场景的一个具体例子。

图 1. 查询结果集是 MQT 子集示意图
DB2 中 MQT 的匹配原理及使用技巧

查看原图(大图)

清单 3. 查询结果集是 MQT 子集匹配

 --MQT definition: join for SALES and PRODUCT 
 CREATE TABLE MQTSCH.SALES_PROD AS 
 (SELECT P.PROD_ID, PROD_DESC, AMOUNT 
 FROM MQTSCH.PRODUCT P, MQTSCH.SALES S 
 WHERE P.PROD_ID = S.PROD_ID) 
 DATA INITIALLY DEFERRED REFRESH DEFERRED; 
 
 refresh table MQTSCH.SALES_PROD; 
 
 --artifical statistics 
 runstats on table MQTSCH.SALES_PROD; 
 update syscat.tables set card=10 where tabname='SALES_PROD'; 
 
 --collect the explain information 
 DELETE FROM EXPLAIN_INSTANCE; 
 explain plan for SELECT P.PROD_ID, PROD_DESC, AMOUNT 
 FROM MQTSCH.PRODUCT P, MQTSCH.SALES S 
 WHERE P.PROD_ID = S.PROD_ID and AMOUNT > 10000; 
 
 !db2exfmt -1 -d mqtdb -o joinsub.plan; 

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

Tags:DB MQT 匹配

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