汪磊+潘永才+湯俊蘭+范亮
摘 要:物化視圖技術(shù)是Oracle公司提供的一種技術(shù),相比于普通視圖而言可以實現(xiàn)更多的功能。物化視圖是基表對象在某一時間點上的復(fù)制品,要實現(xiàn)物化視圖與基表數(shù)據(jù)保持一致,必須為物化視圖創(chuàng)建物化視圖日志。物化視圖日志記錄了基表所有的變更操作,對保證物化視圖及時更新,正確清理物化視圖日志顯得尤為重要。
關(guān)鍵詞:物化視圖;物化視圖日志;快速刷新;基表數(shù)據(jù)
中圖分類號:TP392 文獻標(biāo)識碼:A 文章編號:2095-1302(2017)03-0-02
0 引 言
隨著信息化系統(tǒng)的廣泛普及,數(shù)據(jù)倉庫技術(shù)成為許多專家學(xué)者關(guān)注的熱點,近年來發(fā)展十分迅速。數(shù)據(jù)倉庫是為企業(yè)決策制定過程提供多種類型的數(shù)據(jù)支持的數(shù)據(jù)集合,對于管理部門的決策制定起著至關(guān)重要的作用。由于海量數(shù)據(jù)的存儲,數(shù)據(jù)倉庫在查詢性能方面并沒有得到很好的體現(xiàn)。因此,解決數(shù)據(jù)倉庫系統(tǒng)查詢速度慢的問題受到了許多專家學(xué)者的廣泛關(guān)注。物化視圖作為數(shù)據(jù)倉庫的實現(xiàn)方式之一,能在一定程度上提高查詢性能,減少用戶的查詢響應(yīng)時間。物化視圖通過對基礎(chǔ)表進行復(fù)雜關(guān)聯(lián)、計算等預(yù)處理操作,減少了相應(yīng)的查詢時間。對于物化視圖,關(guān)鍵在于如何保持與基表數(shù)據(jù)同步,從而實現(xiàn)快速刷新,這就要求在創(chuàng)建物化視圖之前必須為物化視圖創(chuàng)建物化視圖日志,并正確清理物化視圖日志。
1 數(shù)據(jù)倉庫概述
數(shù)據(jù)倉庫是單個數(shù)據(jù)存儲的形式,其創(chuàng)建的目的在于為分析性報告和決策制定提供數(shù)據(jù)支撐。數(shù)據(jù)倉庫中的數(shù)據(jù)都按照某一主題組織加工而來,大多來自于多個分散的操作型數(shù)據(jù)庫,出于服務(wù)于決策者的目的,數(shù)據(jù)倉庫將多個數(shù)據(jù)庫中有價值的業(yè)務(wù)數(shù)據(jù)進行加工匯總,為決策者提供更有利于分析的數(shù)據(jù)。
數(shù)據(jù)倉庫一般包括四個部分,即數(shù)據(jù)源、數(shù)據(jù)存儲管理、聯(lián)機分析處理(OLAP)與前端工具(各種管理工具和應(yīng)用工具)。數(shù)據(jù)倉庫體系結(jié)構(gòu)圖如圖1所示。
2 物化視圖概述
2.1 物化視圖概念
物化視圖相對于普通視圖而言是一種物理表,而普通視圖可以看作虛擬表,即數(shù)據(jù)庫中只存儲該視圖的定義,不存儲實際數(shù)據(jù),當(dāng)多次對視圖進行查詢時,實際是反復(fù)執(zhí)行視圖的定義,進而得到查詢結(jié)果,這樣就會出現(xiàn)耗時過長的問題。但物化視圖是一個實際存在的物理表,是基礎(chǔ)表的數(shù)據(jù)副本。其主要具有以下三種特點:
(1)數(shù)據(jù)庫中實際存在與物化視圖對應(yīng)的物理表;
(2)物化視圖有自己的物理存儲屬性的段;
(3)相比于普通視圖,物化視圖占用數(shù)據(jù)庫的磁盤空間。
物化視圖的數(shù)據(jù)組成如圖2所示。
由于物化視圖技術(shù)提前對數(shù)據(jù)庫系統(tǒng)中復(fù)雜的查詢進行計算、連接,把得到的查詢結(jié)果存儲在數(shù)據(jù)庫中。因此,當(dāng)對數(shù)據(jù)庫的查詢與查詢物化視圖相同時,數(shù)據(jù)庫會直接查詢已經(jīng)計算好的結(jié)果,相比于直接查詢多個基礎(chǔ)表,并進行多個關(guān)聯(lián)以及復(fù)雜的計算操作,直接查詢物化視圖在查詢響應(yīng)時間方面得到了明顯提高。由此可見,物化視圖實現(xiàn)的是一種典型的以空間換取時間的策略。
2.2 物化視圖的應(yīng)用
由于物化視圖在查詢響應(yīng)方面體現(xiàn)出來的優(yōu)良性能,已被廣泛應(yīng)用于各行各業(yè)。其中兩個典型的應(yīng)用場景包括用于查詢優(yōu)化與高級復(fù)制。
2.2.1 物化視圖的刷新
為了使物化視圖與基礎(chǔ)表的數(shù)據(jù)保持同步,必須實現(xiàn)物化視圖的刷新。刷新分為ON DEMAND和ON COMMIT兩種刷新模式。當(dāng)用戶需要按照自己的要求設(shè)定時間間隔以及起始時間時可選擇ON DEMAND模式;而在對基礎(chǔ)表數(shù)據(jù)進行更改后,提交時立即進行數(shù)據(jù)刷新則需選擇ON COMMIT刷新模式。一般情況下,我們選擇ON DEMAND刷新模式。此外,根據(jù)不同的應(yīng)用場景,刷新方法分為FAST、COMPLETE、FORCE和NEVER四種。其中,可以實現(xiàn)增量刷新的是FAST和FORCE,COMPLETE實現(xiàn)的是全量刷新,每次刷新時都會重新生成全部數(shù)據(jù)。
2.2.2 創(chuàng)建物化視圖日志
實現(xiàn)快速刷新的前提是創(chuàng)建物化視圖日志,通常物化視圖日志分為ROWID和PRIMARY KEY兩種創(chuàng)建方式。其中,基于ROWID的創(chuàng)建方式應(yīng)根據(jù)ROWID定位基表對象的變化來創(chuàng)建,而PRIMARY KEY則根據(jù)主鍵對基表對象的變化進行定位。創(chuàng)建基于ROWID的物化視圖日志基本語法如下:
CREATE MATERIALIZED VIEW LOG ON 基礎(chǔ)表表名 WITH ROWID,SEQUENCE (字段名) INCLUDING NEW VALUES;
2.2.3 物化視圖在煤炭稅收系統(tǒng)中的應(yīng)用
在讀研期間,我有幸參加了畢節(jié)市煤炭稅源專業(yè)化管理平臺項目的開發(fā)工作。該系統(tǒng)主要為了在方便煤炭企業(yè)生產(chǎn)銷售的同時加強稅收監(jiān)管工作,對進一步制定合理的稅收政策提供數(shù)據(jù)支撐。
該系統(tǒng)的查詢統(tǒng)計模塊采用物化視圖,對數(shù)據(jù)進行預(yù)處理后將計算好的結(jié)果存儲于數(shù)據(jù)庫中,作為系統(tǒng)實現(xiàn)查詢分析功能的數(shù)據(jù)源。但由于物化視圖日志記錄了基礎(chǔ)表所有的更改操作,因此,若對物化視圖日志清理不徹底會導(dǎo)致物化視圖數(shù)據(jù)與基礎(chǔ)表數(shù)據(jù)不一致。具體情況可解釋為若一個基表對應(yīng)兩個或兩個以上的物化視圖,且一個物化視圖定義的是快速刷新(FAST),另一個物化視圖定義的刷新方式是FORCE,那么對于基表數(shù)據(jù)的操作,快速刷新的物化視圖會自動刷新數(shù)據(jù),而FORCE刷新方式的物化視圖還未刷新時(可能因為還未到刷新時間),基表對應(yīng)的物化視圖日志數(shù)據(jù)還未清理;當(dāng)一個基表只有一個對應(yīng)的快速刷新的物化視圖時,在基表數(shù)據(jù)更新的同時,該物化視圖的數(shù)據(jù)隨之更新,且對應(yīng)的物化視圖日志數(shù)據(jù)自動清理。
實踐表明,在清理物化視圖日志后,物化視圖可與基表數(shù)據(jù)保持一致,且定期清理物化視圖日志后并未發(fā)現(xiàn)物化視圖與基表數(shù)據(jù)不一致的情況。
3 結(jié) 語
物化視圖技術(shù)研究表明,在實現(xiàn)多方位查詢分析數(shù)據(jù)的同時,為保證數(shù)據(jù)安全且實現(xiàn)對不同用戶選擇性展示數(shù)據(jù),需要對數(shù)據(jù)進行一定的清洗及過濾,而進行這些復(fù)雜工作的同時會對查詢效率產(chǎn)生一定影響,如何找到其中的平衡點,關(guān)鍵在于解決物化視圖的數(shù)據(jù)同步問題。因此,只有建立合適的物化視圖實現(xiàn)數(shù)據(jù)倉庫,才能真正為決策制定提供依據(jù)。
參考文獻
[1]王倩倩.物化視圖在管理信息系統(tǒng)中的應(yīng)用研究[D].大連:大連理工大學(xué),2013.
[2]王時繪,陳俊.物化視圖在查詢分析中的應(yīng)用[J].科技廣場,2010 (3):169-171.
[3]王嘉萌.物化視圖的優(yōu)化模型研究及其應(yīng)用[D].大連:大連理工大學(xué),2014.
[4]楊少軍,范金存,李慶忠.數(shù)據(jù)倉庫中物化視圖的選擇[J].計算機應(yīng)用,2003,23(9):58-60.
[5]劉晶,朱榮釗.利用物化視圖實現(xiàn)稅務(wù)中心的ETL數(shù)據(jù)抽取[J].信息與電腦(理論版),2016(5):122-123.
[6]劉晶.物化視圖及分區(qū)技術(shù)在貴州地稅省級數(shù)據(jù)集中的應(yīng)用[D].武漢:湖北大學(xué),2011.
[7]付榮.陜西省煤炭生產(chǎn)企業(yè)增值稅監(jiān)控管理系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[8]曲俊華,劉璞.Oracle物化視圖技術(shù)在電力營銷數(shù)據(jù)抽取中的應(yīng)用[J].中國電力教育,2007(Z2):65-67.