0.000501359
TABFNC: SYSIBM DELETE
GENROW ( 8)
506.044
60.0015
/----+-----\
0.000501359 1000
UPDATE TABLE: HQY
( 9) MQTTAB3
506.04 Q7
60.001
/----+-----\
0.000501359 1000
FETCH TABLE: HQY
( 10) MQTTAB3
506.036 Q8
60.0005
/----+-----\
0.000501359 1000
TBSCAN TABLE: HQY
( 11) MQTTAB3
505.995
60
|
0.000501359
TEMP
( 12)
504.729
60
|
0.000501359
>^NLJOIN
( 13)
504.271
60
/----+-----\
0.000501359 40
FILTER TBSCAN
( 14) ( 20)
491.357 144.813
59 7
| |
0.000501359 1000
FILTER TABLE: HQY
( 15) MQTTAB3
491.168 Q19
59
|
58
TBSCAN
( 16)
487.826
59
|
58
SORT
( 17)
487.184
59
|
58
DELETE
( 18)
482.288
59
/---+----\
58 58
TBSCAN TABLE: HQY
( 19) MQTTAB3_STG
13.6476 Q9
1
|
58
TABLE: HQY
MQTTAB3_STG
Q10
在清单 13 中我们看到了一个非常复杂的访问方案,限于篇幅不能详细的解释,简要的说,在这个访问方案中,首先读取了登台表 mqttab3_stg 并删除了登台表的数据(DELETE 操作符 18),接着用登台表中读取的数据与 MQT mqttab3 进行合并(NLJOIN 操作符 13)并放入临时表中(TEMP 操作符 12),然后根据临时表中的数据对 MQT mqttab3 依次进行了更新(UPDATE 操作符 9)、删除(DELETE 操作符 8)和插入(INSERT 操作符 6)。在整个过程中没有任何用到基表 basetab3 的操作,这就说明此时的刷新是完全基于登台表 mqttab3_stg 进行的延迟刷新。
至此,我们已经通过访问方案理解了 MQT 的即时刷新方式、延迟刷新方式以及有登台表的延迟刷新方式的特点和机制,读者还可以继续深入探讨其他情景,如定义复杂的 MQT(如使用 COUNT 和 GROUP BY),或者使用 LOAD 装载数据等情景的各种刷新方式。