MQT (Materialized Query Tables) 定義基於查詢結果。MQT 可顯著提升查詢效能,尤其複雜查詢。本文介紹 MQT、摘要表與 Staging 表,並透過實用範例展示建立與使用。
REFRESH IMMEDIATE/DEFERRED) 或使用者維護。REFRESH DEFERRED:隨時用 REFRESH TABLE 刷新。REFRESH IMMEDIATE 系統維護 MQT 可透過底層表異動 (INSERT/UPDATE/DELETE) 自動更新。基於 SAMPLE 資料庫 EMPLOYEE、DEPARTMENT 建立 EMP 表。因 REFRESH IMMEDIATE MQT 要求查詢引用的每個表至少有一唯一鍵出現在 SELECT 清單,先於 EMPNO、DEPTNO 建立唯一約束。
CONNECT TO SAMPLE
ALTER TABLE EMPLOYEE ADD UNIQUE (EMPNO)
ALTER TABLE DEPARTMENT ADD UNIQUE (DEPTNO)
CREATE TABLE EMP AS (
SELECT E.EMPNO, E.FIRSTNME, E.LASTNAME, E.PHONENO, D.DEPTNO,
SUBSTR(D.DEPTNAME,1,12) AS DEPARTMENT, D.MGRNO
FROM EMPLOYEE E, DEPARTMENT D
WHERE E.WORKDEPT = D.DEPTNO
)
DATA INITIALLY DEFERRED REFRESH IMMEDIATE
SET INTEGRITY FOR EMP IMMEDIATE CHECKED NOT INCREMENTAL
說明: DATA INITIALLY DEFERRED 表示建表時不載入資料,處於「檢查待定」狀態,執行 SET INTEGRITY 前不可查詢。IMMEDIATE CHECKED 指定依定義查詢檢查並刷新資料。NOT INCREMENTAL 指定對整表進行完整性檢查。