我在DB2 10.5 LUW中有一个MQT。
CREATE TABLE MyMQT AS(
SELECT * FROM MyTable
WHERE
ServerName = 'COL'
AND LASTOCCURRENCE > TIMESTAMP '2015-12-21 00:00:00'
)
DATA INITIALLY DEFERRED REFRESH immediate
ENABLE QUERY OPTIMIZATION
MAINTAINED BY SYSTEM;
我想 DISABLE QUERY OPTIMIZATION
橆 DROP/CREATE
.
我发现 "改变物化查询表属性" https:/www-01.ibm.comsupportknowledgecenterSSEPEK_10.0.0com.ibm.db2z10.doc.adminsrctpcdb2z_changemqtableattribs.html。但这是针对zOS的。
如果我试一下,
ALTER TABLE MyMQT DISABLE QUERY OPTIMIZATION;
我得到的是:
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "TABLE" was found following "ALTER ". Expected
tokens may include: "VIEW". SQLSTATE=42601
LUW的文档解释了如何将MQT改为普通表和其他方式。
我可以在DB2 LUW中改变MQT选项而不重新创建它吗?
这很奇怪,但看起来这在DB2 LUW中是不可能实现的。
正如Data_henrik所提到的,可以对所有的MQTs进行禁用优化。
我接受他的回答,虽然这不是我想要的。
没有个人经验,但你可以。
SET CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION = NONE
这将告诉DB2不考虑任何MQT。之后你将通过将该变量设置为 "system"(默认)或其他东西来启用查询优化。这个声明在这里有记录.