【发布时间】:2016-03-28 02:09:08
【问题描述】:
2021 年更新
这个问题对我来说不再实际。
我使用 DB2 的时间很短,我不知道在最近的版本中情况如何。
问题是:如果不重新构建 MQT,我无法测试它的效果。
这在处理多 Gb 数据时并不实用。
我之前没有找到解决方案,我不知道为什么问题被减去了。
SO 建议不删除有答案的问题,谁知道呢:也许有人终于回答了。
我在 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.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.admin/src/tpc/db2z_changemqtableattribs.html 但这是针对 z/OS 的。
如果我尝试:
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 提到的,可以为所有 MQT 禁用/启用优化。
我接受他的回答,虽然这不是我想要的。
【问题讨论】:
-
你想达到什么目的?
-
我想快速测试有无 QUERY REWRITE 的查询(哦,抱歉,这是一个预言机术语?)。我不想用 drop-create MQT 等待几分钟。
标签: materialized-views db2-luw