我在DB2 10.5 LUW中有一个MQT:
import csv, itertools as it, operator as op
csv_contents = []
with open('Nov15.csv', 'rb') as fin:
file_reader = csv.DictReader(fin) # default delimiter is comma
print file_reader
fieldnames = file_reader.fieldnames # save for writing
for line in file_reader: # read in all of your data
csv_contents.append(line) # gather data into a list (of dicts)
# input to itertools.groupby must be sorted by the grouping value
sorted_csv_contents = sorted(csv_contents, key=op.itemgetter('Object'))
for groupkey, groupdata in it.groupby(sorted_csv_contents, key=op.itemgetter('Object')):
with open('slice_{:s}.csv'.format(groupkey), 'wb') as gips:
file_writer = csv.DictWriter(gips, fieldnames=fieldnames)
file_writer.writeheader()
file_writer.writerows(groupdata)
我想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
。
我找到了“更改具体化查询表属性”https://www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.admin/src/tpc/db2z_changemqtableattribs.html 但这适用于z / OS。
如果我尝试:
DROP/CREATE
我明白了:
ALTER TABLE MyMQT DISABLE QUERY OPTIMIZATION;
LUW的文档说明了如何将MQT更改为常规表,否则。
我可以在不重新创建DB2 LUW的情况下更改MQT选项吗?
这很奇怪,但看起来这在DB2 LUW中是不可能实现的。
正如data_henrik所提到的,可以禁用/启用所有MQT的优化。
我接受了他的回答,虽然这不是我想要的。
答案 0 :(得分:0)
没有个人经验,但你可以:
SET CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION = NONE
这会告诉DB2不要考虑任何MQT。稍后,您可以通过将该变量设置为" system"来启用查询优化。 (默认)或其他。 That statement is documented here
答案 1 :(得分:-2)
尝试一下:
refreshable-table-options
|--●--DATA INITIALLY DEFERRED--●--REFRESH--+-DEFERRED--+--●----->
'-IMMEDIATE-'
.-ENABLE QUERY OPTIMIZATION--.
>--+----------------------------+--●---------------------------->
'-DISABLE QUERY OPTIMIZATION-'