ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » IBM数据库产品 » MQT物化查询表问题

标题: [有问必答活动] MQT物化查询表问题
离线 new_bird
初级会员



精华贴数 0
个人空间 0
技术积分 106 (16222)
社区积分 1 (44421)
注册日期 2007-6-14
论坛徽章:0
      
      

发表于 2008-9-9 11:12 
MQT物化查询表问题

1. 创建MQT表,并通过set integrity将数据填充到MQT表中

create table sales_summary as (select sales_person, region, sum(sales)
as total_sales
from sales group by sales_person, region FOR READ ONLY)
DATA INITIALLY DEFERRED REFRESH DEFERRED
ENABLE QUERY OPTIMIZATION
MAINTAINED BY SYSTEM;
set integrity for emp immediate checked not incremental;

这时候sales_summary 是可访问并有record的。

2. 刷新特殊寄存器的值, refresh age = any, query optimization =9, MAINTAINED TABLE TYPES FOR OPTIMIZATION = all

3. 但是这时候去查看sql的access path :

select sales_person, region, sum(sales)
as total_sales
from sales group by sales_person, region FOR READ ONLY

Q1: optimizaer还是没有选择通过MQT来访问,为啥?
Q2:如果要让opt choose MQT,是否还要需要有相关的stats的update? 是否想z平台那样,有一个阈值,当发现sql的estimate cost大于这个阈值,就会选择MQT?
Q3:是否是因为这个query 的形式不符合opt choose MQT的要求? 有LUW上关于MQT的更多的资料介绍?


只看该作者    顶部
离线 unixnewbie
请多指教



来自 Australia
精华贴数 0
个人空间 0
技术积分 1146 (1592)
社区积分 2 (29203)
注册日期 2006-4-8
论坛徽章:3
现任管理团队成员2008年新春纪念徽章ITPUB新首页上线纪念徽章   
      

发表于 2008-9-9 12:31 
A1: Are you using V9.1 or above. If so, in db2exfmt output it has a statement telling you why the MQT is not chosen.
A2: MQT table does need statistics update.
A3: Heaps of info about MQT, refer to infocenter:
http://publib.boulder.ibm.com/in ... oc/doc/c0005324.htm


__________________

Jian

只看该作者    顶部
离线 wangzhonnew
Murphy was an optimist


精华贴数 24
个人空间 0
技术积分 9100 (136)
社区积分 513 (1428)
注册日期 2005-11-12
论坛徽章:16
现任管理团队成员管理团队2007贡献徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章授权会员
2008北京奥运纪念徽章:蹦床2008北京奥运纪念徽章:举重2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:跆拳道生肖徽章2007版:鼠

发表于 2008-9-9 23:14 
Diagnostic Details:         EXP0054W  The following REFRESH DEFERRED MQT was
                        not considered for rewrite matching because the
                        CURRENT REFRESH AGE register was not set to ANY:
                        "TAOEWANG"."SALES_SUMMARY".

try to use refresh immediate and see


__________________
wangzhonnew@hotmail.com
http://spaces.msn.com/members/wangzhonnew/
只看该作者    顶部
离线 new_bird
初级会员



精华贴数 0
个人空间 0
技术积分 106 (16222)
社区积分 1 (44421)
注册日期 2007-6-14
论坛徽章:0
      
      

发表于 2008-9-10 17:19 
问题解决了,通过多次design query和MQT,并多次用db2exfmt 来看结果,发现在LUW上面opt选用MQT还是不那么随便的,很多次的diagnostic的结果都是说MQT还不如base table,多谢unixnewbie ,他说的没错,MQT不需要stats,即便在sysstats.tables和columns上面把MQT的statsupdate得很低,opt还是不会选MQT,个人估计,opt会根据base table的estimate结果来估计MQT的大小,从而选择是否需要MQT,另外在LUW上面opt选用MQT和sql 的syntax无关,不像z上面有比较严格的rule,多谢wangzhongnew,好像通过refresh table SALES_SUMMARY 命令后,就可以消除deferred的状态。


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问