MQT на Db2 для IBM я отстаю от функциональности, доступной в Db2 для LUW.
Я никогда не беспокоился об этом, вместо этого закодированный векторный индекс (EVI) с вычисляемыми столбцами удовлетворяет все мои потребностикаждый считается.(Обратите внимание, что в Db2 LUW нет EVI)
Согласно комментарию Мао, вы можете попытаться удалить воссозданный 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.Вместо этого полагайтесь на оптимизатор, чтобы получить к нему доступ при необходимости.Теперь вы можете создавать его версию каждые несколько часов, и БД должен начать использовать более новую версию для новых запросов.Как только старый больше не используется, вы удаляете его (или REFRESH
это)