我创建了以下具体化查询表:
CREATE TABLE SCHEMA.TABLE AS (SELECT * FROM SCHEMA.TABLEEXAMPLE) 数据初步推迟 刷新推迟 由用户维护 …
对于IBM i,Db2上的MQT落后于LUW的Db2中可用的功能。
我从来没有打扰过他们,相反,带有计算列的编码矢量索引(EVI)满足了我所考虑的每一个需求。 (注意Db2 LUW没有EVI)
根据Per Mao的评论,您可以尝试删除使用以下内容重新创建MQT:
CREATE TABLE SCHEMA.TABLE AS (SELECT * FROM SCHEMA.TABLEEXAMPLE) DATA INITIALLY DEFERRED REFRESH DEFERRED MAINTAINED BY USER DISABLE QUERY OPTIMIZATION with NC;
但我认为刷新仍然需要独占访问MQT。
我可以想到的唯一选项是在使用MQT时“刷新”它
以编程方式,使用基表上的任一触发器,或者使用SQL一次更新几行的进程。
删除 DISABLE QUERY OPTIMIZATION 而不是直接访问MQT。而是依赖于优化器在适当时访问它。现在,您可以每隔几个小时创建一个版本,Db应该开始使用较新版本的新查询。一旦旧版本不再使用,您将删除它(或 REFRESH 它)
DISABLE QUERY OPTIMIZATION
REFRESH