使用 MQT物化查詢表(Materialized Query Tables MQT)
MQT 的定義基於查詢的結果MQT 可以顯著提高查詢的性能本教程將介紹 MQT總結表(summary table)和 staging 表並通過一些實用的例子展示如何創建和使用物化查詢表
MQT 是基於查詢的結果定義的一個表MQT 中包含的數據來自 MQT 定義所基於的一個或多個表總結表(也稱自動總結表[AST])對於 IBM DB for Linux UNIX and Windows 的用戶來說應該感到比較熟悉它們可以看作是特殊的 MQTfullselect 是總結表定義的一部分它包含一個 GROUP BY 子句該子句總結 fullselect 中所引用表中的數據
您可以將 MQT 看作一種物化的視圖視圖和 MQT 都是基於一個查詢來定義的每當視圖被引用時視圖所基於的查詢便會運行但是MQT 實際上會將查詢結果存儲為數據您可以使用 MQT 中的這些數據而不是使用底層表中的數據MQT 可以顯著提高查詢的性能尤其是提高復雜查詢的性能如果優化器確定查詢或查詢的一部分可以用一個 MQT 來解決那麼查詢就可以被重寫以便利用 MQTMQT 可以在創建表時定義可以定義為由系統維護也可以定義為由用戶維護
這種 MQT 中的數據是由系統維護的當創建這種類型的 MQT 時可以指定表數據是 REFRESH IMMEDIATE 還是 REFRESH DEFERRED通過 REFRESH 關鍵字可以指定如何維護數據DEFERRED 的意思是表中的數據可以在任何時候通過 REFRESH TABLE 語句來刷新系統維護的 MQT不管是 REFRESH DEFERRED 類型的還是 REFRESH IMMEDIATE 類型的對它們的插入更新或刪除操作都是不允許的但是對於 REFRESH IMMEDIATE 類型的系統維護的 MQT可以通過 對底層表的更改(即插入更新或刪除操作)來更新
[] []
From:http://tw.wingwit.com/Article/program/DB2/201311/21922.html