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