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

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

 2010-05-13 00:00:00 来源:WEB开发网   
核心提示: 清单 5. 手动刷新采用即时更新方式的 MQTdb2setcurrentexplainmodeexplaindb2"refreshtablemqttab"db2exfmt-dMYDB-1-e-orefresh1.exfmtdb2setcurrentexplainmodenoR

清单 5. 手动刷新采用即时更新方式的 MQT

  
 db2 set current explain mode explain 
 db2 "refresh table mqttab" 
 db2exfmt -d MYDB -1 -e -o refresh1.exfmt 
 db2 set current explain mode no 
 Rows 
   RETURN 
   (  1) 
    Cost 
    I/O 
    | 
     1 
   TBSCAN 
   (  2) 
   0.0048 
     0 
    | 
     1 
 TABFNC: SYSIBM 
   GENROW 

在清单 5 的执行计划可以看到,对于采用即时刷新方式的 MQT,当用户手动刷新时并没有对该 MQT 进行任何操作。访问方案中的 SYSIBM.GENROW 是一个内置函数,它可生成行的表而不使用任何输入,它可以用来生成数据行,然后 TBSCAN 操作符读取数据行。

至此,我们已经通过访问方案理解了 MQT 的即时刷新方式,接下来我们继续讨论 MQT 的延迟刷新方式。

REFRESH DEFERRED 方式(无登台表,即完全刷新)

创建一个基表并插入若干数据,然后创建一个延迟刷新的 MQT,这里基表和 MQT 的表结构与之前的相同,这样也便于我们比较不同刷新方式的异同。使用的语句如清单 6 所示。

清单 6. 创建延迟刷新的 MQT

 create table basetab2 
 (c1 int not null primary key, c2 int, c3 int, c4 int); 
 
 insert into basetab2 
 values(1,1,1,1),(2,2,2,2),(3,3,3,3),(11,11,11,11); 
 
 create table mqttab2 as 
 (select c1, c2, c3 from basetab2 where c1 > 10) 
 data initially deferred refresh deferred; 
 
 set integrity for mqttab2 immediate checked not incremental 

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

Tags:DB 说明 工具

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