程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 帶您深入了解DB2物化查詢表

帶您深入了解DB2物化查詢表

編輯:DB2教程

DB2物化查詢表MQT)是DB2數據庫中一類特殊的表,下面就為您詳細介紹DB2物化查詢表方面的知識,希望對您能夠有所幫助。

1.DB2物化查詢表與視圖的區別
視圖是一個查詢語句。物化查詢表是一個查詢的結果集。

2.創建DB2物化查詢表
物化查詢表可以在創建臨時表的時候定義,分為2種。
·系統維護的MQT
系統維護的MQT分為2種,一種是refresh immediate,另一種是refresh deferred。前者在你修改了底層表後能自動刷新,後者可以隨時通過
refresh table 語句來進行刷新。對於refresh immediate類型的MQT在select時必須包含所FROM的每個表的至少一個唯一鍵。假如不包含唯一鍵,則會報錯:SQLSTATE:428EC 為具體化查詢表,指定的全查詢無效)。
PS:增加唯一性約束的語句是:
alter table dm_gj add unique(gj_dm)

創建MQT語句:
create table topicis.mqt_test as
(select a.gj_dm 國家代碼,a.gj_mc 國家名稱 from topicis.dm_gj a) data initially deferred refresh immediate

data initially deferred refresh immediate 翻譯成中文的意思是:數據初始化延後,立即刷新。

在creat table 之後,MQT處於暫掛狀態,還需要填充數據方能用於查詢:
語句:
set integrity for topicis.mqt_test immediate checked not incremental

set integrity 使完整
immediate cheched 根據定義的SELECT對數據進行檢查,並刷新
not incremental 對整個表進行完整性檢查

set之後,該MQT才可以用於查詢

國家代碼 國家名稱                                                                                           
-------- ----------------------------------------------------------------------------------------------------
004      亞洲-阿富汗                                                                                        
008      歐洲-阿爾巴尼亞                                                                                    
012      非洲-阿爾及利亞                                                                                    
016      大洋洲-美屬薩摩亞                                                                                  
020      歐洲-安道爾                                                                                        
024      非洲-安哥拉                                                                                        
028      拉丁美洲-安提瓜和巴布達                                                                            
032      拉丁美洲-阿根廷                                                                                    
036      大洋洲-澳大利亞                                                                                    
040      歐洲-奧地利                                                                                        
044      拉丁美洲-巴哈馬                                                                                    
048      亞洲-巴林                                                                                          
050      亞洲-孟加拉國                                                                                      
052      拉丁美洲-巴巴多斯                                                                                  
056      歐洲-比利時                                                                                        
060      北美洲-百慕大群島                                                                                  
064      亞洲-不丹                                                                                          
068      拉丁美洲-玻利維亞                                                                                  
072      非洲-博茨瓦納                                                                                      
074      其它-布維島
……                                       
需要注意的是對於系統維護的物化查詢表,進行insert,update,delete都是不允許的。你可以通過對底層表的insert,update,delete來改變MQT的數據。
用戶維護的MQT
用戶維護的MQT與系統維護的區別在於,系統維護的MQT可以使用refresh table命令來刷新數據,用戶維護的MQT不可以。用戶維護的MQT可以直接insert,update,delete,系統維護的MQT不可以。
創建MQT的語句:
create table topicis.mqt_test as
(select a.gj_dm 國家代碼,a.gj_mc 國家名稱 from topicis.dm_gj a) data initially deferred refresh deferred maintained by user
對於用戶維護的MQT來說,必然是refresh deferred 的。maintained 這個單詞的意思是保持,維護.maintained by user 即為用戶維護。

和系統維護的MQT一樣,還需要set integrity
set integrity for topicis.mqt_test materialized query immediate unchecked

materialized:物化
immediate unchecked 表明對該表不進行完整性約束的檢查。
此時,若對MQT進行查詢,你會發現裡面的數據為0條。因為此時該MQT裡還沒有數據。你需要手工插入數據,或者通過剛才的SELECT語句從底層表export,然後再import進來。
所以總體來說,用戶維護的DB2物化查詢表相當於基於原來的幾個底層表創建一個新的實體表。
 

DB2分區數據庫的前滾操作

三類DB2數據庫備份方案

DB2批量執行SQL腳本的實現

在線改變DB2頁大小的實現

DB2表空間靜默狀態的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved