王志鵬 孫萌
摘 要:數(shù)據(jù)倉庫中存貯著大量的歷史數(shù)據(jù),主要供企業(yè)決策分析之用,所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢。因此,提升數(shù)據(jù)倉庫的查詢效率,優(yōu)化查詢方法是提升數(shù)據(jù)倉庫應(yīng)用的關(guān)鍵問題之一。本文主要介紹了數(shù)據(jù)倉庫的查詢性能問題,介紹目前主流的查詢優(yōu)化方法,并重點(diǎn)介紹了索引技術(shù)和分區(qū)優(yōu)化方法。
關(guān)鍵詞:數(shù)據(jù)倉庫;查詢優(yōu)化;索引;分區(qū)優(yōu)化
1 引言
數(shù)據(jù)倉庫是為企業(yè)所有級別的決策制定過程提供支持的所有類型數(shù)據(jù)的戰(zhàn)略集合。數(shù)據(jù)倉庫是由單個(gè)數(shù)據(jù)存儲(chǔ),出于分析性報(bào)告和決策支持的目的而創(chuàng)建。作為商業(yè)智能市場的三大支撐技術(shù)之一,數(shù)據(jù)倉庫為企業(yè)提供需要業(yè)務(wù)智能來指導(dǎo)業(yè)務(wù)流程改進(jìn)和監(jiān)視時(shí)間、成本、質(zhì)量和控制。數(shù)據(jù)倉庫中存貯著大量的歷史數(shù)據(jù),主要供企業(yè)決策分析之用,所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢。因此,提升數(shù)據(jù)倉庫的查詢效率,優(yōu)化查詢方法是提升數(shù)據(jù)倉庫應(yīng)用的關(guān)鍵問題之一。本文主要介紹了數(shù)據(jù)倉庫的查詢性能問題,介紹目前主流的查詢優(yōu)化方法,并重點(diǎn)介紹了索引和分區(qū)優(yōu)化方法。
查詢性能對于數(shù)據(jù)倉庫來說,是最重要的性能指標(biāo)。無論是在生產(chǎn)系統(tǒng),還是在POC(Proof Of Concept)性能測試來說,優(yōu)秀的查詢性能都能為數(shù)據(jù)倉庫的應(yīng)用帶來高效的工作效率。OLAP涉及到大面積的數(shù)據(jù)查詢,如何滿足OLAP的快速響應(yīng),是數(shù)據(jù)倉庫性能優(yōu)化的核心。
針對數(shù)據(jù)倉庫查詢的復(fù)雜性特點(diǎn),目前主要的查詢優(yōu)化方法主要包括物化視圖、近似查詢、索引技術(shù)、分區(qū)優(yōu)化等。本文重點(diǎn)介紹索引技術(shù)和分區(qū)優(yōu)化。
2 索引技術(shù)
目前數(shù)據(jù)倉庫中常用的索引結(jié)構(gòu)有三種,β-樹索引、R-樹索引和位圖索引。
2.1 β-樹索引
β-樹是一種動(dòng)態(tài)調(diào)節(jié)的平衡樹,它引入了一種效率很高的外查找機(jī)制,比較適合于字段值分散且重復(fù)值少的字段。一個(gè)β-樹索引包含一個(gè)由高層結(jié)點(diǎn)和相繼低層結(jié)點(diǎn)組成的層次結(jié)構(gòu)。在β-樹索引中有兩類結(jié)點(diǎn):分支結(jié)點(diǎn),簡單地指向相應(yīng)的低層結(jié)點(diǎn);葉子結(jié)點(diǎn),存放β-樹方法的實(shí)際內(nèi)容。
β-樹結(jié)構(gòu)的特點(diǎn)是簡潔性、易維護(hù)性及支持具有高可選擇性列值的高速檢索。這種方法適合于對索引列值等值查找和范圍查找的查詢。
2.2 位圖索引
位圖索引與β-樹索引相反,用于索引列的可能取值比較少,即低基數(shù)的情況。在位圖索引中,不是以行標(biāo)識為指針說明各條記錄,而是應(yīng)用“位”的概念直接確定索引列的值?!拔弧笔俏粓D索引的核心,每一位與索引列可能的取值之一相對應(yīng)。 在索引列的可能取值數(shù)目小于32時(shí),采用位圖索引可以節(jié)省存儲(chǔ)空間;索引列的可能取值數(shù)目大于32時(shí),位圖索引節(jié)省存儲(chǔ)空間的優(yōu)勢就不存在了。
2.3 R-樹索引
R-樹索引支持多維數(shù)據(jù)建立索引,是一種面向多維空間對象的索引結(jié)構(gòu),R-樹內(nèi)部結(jié)點(diǎn)中的鍵值則是多維空間中的一個(gè)區(qū)域,因此不僅要存儲(chǔ)行標(biāo)識信息,同時(shí)要存儲(chǔ)被索引對象的邊界信息。因?yàn)镽-樹索引是多維的,所以常常采用這種方法為OLAP數(shù)據(jù)建立索引。
基于R-樹來存儲(chǔ)組織數(shù)據(jù)倉庫中的聚集數(shù)據(jù),即實(shí)物化視圖,有效地支持各種OLAP查詢。根據(jù)所有的維建立的R-樹索引可以較好地滿足多維空間對象查詢需要,而利用它為多維數(shù)據(jù)建立索引仍有較大的不足。
2.4 索引優(yōu)化
不論是數(shù)據(jù)庫還是數(shù)據(jù)倉庫, 索引建立的好壞直接影響訪問效率。
β-樹只在索引是高基數(shù)(基數(shù)是一個(gè)表列中不同值的個(gè)數(shù)與整個(gè)表中的行數(shù)的比值)的時(shí)候才有價(jià)值,而在數(shù)據(jù)倉庫中構(gòu)造和維護(hù)的代價(jià)高。因此β-樹索引對于簡單查詢比較有效,而在數(shù)據(jù)倉庫的復(fù)雜查詢中, 往往是無能為力的。
在數(shù)據(jù)倉庫中采用位圖索引技術(shù)可以使查詢處理和索引存取的效率提高許多倍。在數(shù)據(jù)倉庫環(huán)境中,位圖索引在建立和維護(hù)位圖索引時(shí)間和空間代價(jià)方面都優(yōu)于β-樹索引,同時(shí) 位圖索引可以彼此一起工作達(dá)到減少搜索空間的目的。但隨著基數(shù)的增加, 位圖索引仍然存在不可克服的缺點(diǎn)。因此如何高效地實(shí)現(xiàn)建立數(shù)據(jù)倉庫索引,提高查詢性能,需要進(jìn)一步研究和探討的問題。
3 分區(qū)優(yōu)化
目前數(shù)據(jù)倉庫分區(qū)優(yōu)化的方法得到廣泛應(yīng)用。關(guān)系型數(shù)據(jù)倉庫和分析服務(wù)多維數(shù)據(jù)集都支持?jǐn)?shù)據(jù)分區(qū)。分區(qū)是通過創(chuàng)建單獨(dú)的物理表(例如為每個(gè)月的數(shù)據(jù)創(chuàng)建一個(gè)表)并且定義一個(gè)成員表的聯(lián)合視圖來實(shí)現(xiàn)的。在數(shù)據(jù)倉庫中,事實(shí)表,索引表,維度表分處于三個(gè)不同的表空間當(dāng)中,便于并發(fā)操作。分區(qū)的優(yōu)點(diǎn)是可以大大縮短查詢時(shí)間,減少加載時(shí)間,改善數(shù)據(jù)庫的可維護(hù)性,同時(shí)有效解決從活動(dòng)數(shù)據(jù)庫中刪除舊數(shù)據(jù)時(shí)出現(xiàn)的數(shù)據(jù)修剪問題。
數(shù)據(jù)倉庫分區(qū)存在一些限制條件:表或索引的所有分區(qū)必須具備相同的邏輯結(jié)構(gòu),但每個(gè)分區(qū)的物理屬性可以不同,每個(gè)分區(qū)對象的所有分區(qū)必須存儲(chǔ)在數(shù)據(jù)庫塊容量相同的表空間中,但一個(gè)表的不同分區(qū)索引可以防止不同塊大小的表空間中。
[參考文獻(xiàn)]
[1]趙志升,李靜,葉云龍.數(shù)據(jù)倉庫模型設(shè)計(jì)中的索引策略研究[J].電腦開發(fā)與應(yīng)用, 2010年01期.
[2]黃金釵,楊科華,陳楠楠.數(shù)據(jù)倉庫索引啟發(fā)式查詢優(yōu)化方法[J].計(jì)算機(jī)工程與應(yīng)用,2010年03期.
[3]壽挺,肖善鐘,陸翔.一種采用實(shí)時(shí)分區(qū)實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)倉庫的方法[J].電力信息化, 2009年04期.
[4]徐東海.數(shù)據(jù)庫中分區(qū)索引技術(shù)研究[D].長沙理工大學(xué),2012.