新聞中心
DB2物化查詢表(MQT)是DB2數(shù)據(jù)庫(kù)中一類特殊的表,下面就為您詳細(xì)介紹DB2物化查詢表方面的知識(shí),希望對(duì)您能夠有所幫助。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了惠陽(yáng)免費(fèi)建站歡迎大家使用!
1.DB2物化查詢表與視圖的區(qū)別
視圖是一個(gè)查詢語(yǔ)句。物化查詢表是一個(gè)查詢的結(jié)果集。
2.創(chuàng)建DB2物化查詢表
物化查詢表可以在創(chuàng)建臨時(shí)表的時(shí)候定義,分為2種。
·系統(tǒng)維護(hù)的MQT
系統(tǒng)維護(hù)的MQT分為2種,一種是refresh immediate,另一種是refresh deferred。前者在你修改了底層表后能自動(dòng)刷新,后者可以隨時(shí)通過(guò)
refresh table 語(yǔ)句來(lái)進(jìn)行刷新。對(duì)于refresh immediate類型的MQT在select時(shí)必須包含所FROM的每個(gè)表的至少一個(gè)唯一鍵。假如不包含唯一鍵,則會(huì)報(bào)錯(cuò):SQLSTATE:428EC (為具體化查詢表,指定的全查詢無(wú)效)。
PS:增加唯一性約束的語(yǔ)句是:
alter table dm_gj add unique(gj_dm)
創(chuàng)建MQT語(yǔ)句:
create table topicis.mqt_test as
(select a.gj_dm 國(guó)家代碼,a.gj_mc 國(guó)家名稱 from topicis.dm_gj a) data initially deferred refresh immediate
data initially deferred refresh immediate 翻譯成中文的意思是:數(shù)據(jù)初始化延后,立即刷新。
在creat table 之后,MQT處于暫掛狀態(tài),還需要填充數(shù)據(jù)方能用于查詢:
語(yǔ)句:
set integrity for topicis.mqt_test immediate checked not incremental
set integrity 使完整
immediate cheched 根據(jù)定義的SELECT對(duì)數(shù)據(jù)進(jìn)行檢查,并刷新
not incremental 對(duì)整個(gè)表進(jìn)行完整性檢查
set之后,該MQT才可以用于查詢
國(guó)家代碼 國(guó)家名稱
-------- ----------------------------------------------------------------------------------------------------
004 亞洲-阿富汗
008 歐洲-阿爾巴尼亞
012 非洲-阿爾及利亞
016 大洋洲-美屬薩摩亞
020 歐洲-安道爾
024 非洲-安哥拉
028 拉丁美洲-安提瓜和巴布達(dá)
032 拉丁美洲-阿根廷
036 大洋洲-澳大利亞
040 歐洲-奧地利
044 拉丁美洲-巴哈馬
048 亞洲-巴林
050 亞洲-孟加拉國(guó)
052 拉丁美洲-巴巴多斯
056 歐洲-比利時(shí)
060 北美洲-百慕大群島
064 亞洲-不丹
068 拉丁美洲-玻利維亞
072 非洲-博茨瓦納
074 其它-布維島
……
需要注意的是對(duì)于系統(tǒng)維護(hù)的物化查詢表,進(jìn)行insert,update,delete都是不允許的。你可以通過(guò)對(duì)底層表的insert,update,delete來(lái)改變MQT的數(shù)據(jù)。
用戶維護(hù)的MQT
用戶維護(hù)的MQT與系統(tǒng)維護(hù)的區(qū)別在于,系統(tǒng)維護(hù)的MQT可以使用refresh table命令來(lái)刷新數(shù)據(jù),用戶維護(hù)的MQT不可以。用戶維護(hù)的MQT可以直接insert,update,delete,系統(tǒng)維護(hù)的MQT不可以。
創(chuàng)建MQT的語(yǔ)句:
create table topicis.mqt_test as
(select a.gj_dm 國(guó)家代碼,a.gj_mc 國(guó)家名稱 from topicis.dm_gj a) data initially deferred refresh deferred maintained by user
對(duì)于用戶維護(hù)的MQT來(lái)說(shuō),必然是refresh deferred 的。maintained 這個(gè)單詞的意思是保持,維護(hù).maintained by user 即為用戶維護(hù)。
和系統(tǒng)維護(hù)的MQT一樣,還需要set integrity
set integrity for topicis.mqt_test materialized query immediate unchecked
materialized:物化
immediate unchecked 表明對(duì)該表不進(jìn)行完整性約束的檢查。
此時(shí),若對(duì)MQT進(jìn)行查詢,你會(huì)發(fā)現(xiàn)里面的數(shù)據(jù)為0條。因?yàn)榇藭r(shí)該MQT里還沒有數(shù)據(jù)。你需要手工插入數(shù)據(jù),或者通過(guò)剛才的SELECT語(yǔ)句從底層表export,然后再import進(jìn)來(lái)。
所以總體來(lái)說(shuō),用戶維護(hù)的DB2物化查詢表相當(dāng)于基于原來(lái)的幾個(gè)底層表創(chuàng)建一個(gè)新的實(shí)體表。
【編輯推薦】
DB2分區(qū)數(shù)據(jù)庫(kù)的前滾操作
三類DB2數(shù)據(jù)庫(kù)備份方案
DB2批量執(zhí)行SQL腳本的實(shí)現(xiàn)
在線改變DB2頁(yè)大小的實(shí)現(xiàn)
DB2表空間靜默狀態(tài)的
文章題目:帶您深入了解DB2物化查詢表
網(wǎng)站URL:http://www.5511xx.com/article/cdessod.html


咨詢
建站咨詢
