摘要:近年來(lái)越來(lái)越多的人關(guān)注決策支持查詢領(lǐng)域。這種查詢通常操作海量數(shù)據(jù),執(zhí)行多重連接和復(fù)雜聚合,針對(duì)這種查詢操作的復(fù)雜性和秒級(jí)響應(yīng)時(shí)間的需求,本文提出了使用QGM模型尋找自動(dòng)累加表,在相應(yīng)系統(tǒng)查詢時(shí),通過(guò)訪問自動(dòng)匯總表AST替代原始數(shù)據(jù)基本表,從而實(shí)現(xiàn)查詢性能的提升和優(yōu)化。
關(guān)鍵詞:QGM;AST;SQL查詢
中圖分類號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 21-0000-02
近年來(lái)越來(lái)越多的人關(guān)注決策支持查詢領(lǐng)域。這種查詢基本上要對(duì)海量數(shù)據(jù)進(jìn)行多重連接和復(fù)雜聚合。此外,它們具有越來(lái)越多的相互作用,需求秒級(jí)的響應(yīng)時(shí)間。傳統(tǒng)查詢優(yōu)化技術(shù)常常不能滿足這些新的要求。那么采用什么查詢優(yōu)化技術(shù)來(lái)滿足不斷變化的信息源和快速響應(yīng)的系統(tǒng)需求是我們要亟待解決的問題。在這種情況下,應(yīng)用在實(shí)踐中通常的一個(gè)解決方案就是創(chuàng)建一些物化視圖(MVs),其包含一組用戶查詢中常用操作的預(yù)先計(jì)算的結(jié)果;通過(guò)訪問MVs來(lái)替代原始數(shù)據(jù),這樣個(gè)人用戶查詢可以被優(yōu)化。
本文提出的自動(dòng)累加表功能上和物化視圖類似,但是它是實(shí)際存在的物理表,將查詢頻率比較高和與業(yè)務(wù)查詢密切相關(guān)的屬性制作成自動(dòng)累加表,可以同時(shí)滿足信息源變化頻繁和快速響應(yīng)時(shí)間的要求。
自動(dòng)累加表(Automatic Summary Table,AST)。Chen Dongfeng等人通過(guò)QGM(Query Graph Model)工具來(lái)表示查詢過(guò)程,并提出了查詢和AST匹配模型,還歸納總結(jié)出了4種統(tǒng)一的匹配模式;然后通過(guò)AST對(duì)查詢進(jìn)行重寫,查詢時(shí)直接訪問AST來(lái)實(shí)現(xiàn)查詢統(tǒng)計(jì)優(yōu)化。AST技術(shù)實(shí)際上是一種帶有聚集函數(shù)的物化視圖,考慮到其優(yōu)化過(guò)程的自動(dòng)性,所以稱為自動(dòng)累加表。
1 數(shù)據(jù)庫(kù)應(yīng)用示例
本文所用的數(shù)據(jù)庫(kù)示例,包含一個(gè)事實(shí)表(Trans),它記錄了信用卡的交易。每筆交易對(duì)應(yīng)于購(gòu)買一個(gè)產(chǎn)品,并記錄產(chǎn)品組(fpgid),位置(flid)和購(gòu)買的日期,信用卡id號(hào)(faid)及購(gòu)買產(chǎn)品的數(shù)量(qty)、價(jià)格和產(chǎn)品的折扣率。產(chǎn)品組、位置和信用卡賬戶構(gòu)成了三個(gè)維度。產(chǎn)品維度由在PGroup表中的單一級(jí)別記錄構(gòu)成,位置維度包含城市、州和國(guó)家組成,是由一個(gè)單一非規(guī)范化的表(LOC)表示。賬戶維度包含2個(gè)級(jí)別,由Cust和Acct表構(gòu)成。模式中還包含一個(gè)Time維度,其被標(biāo)識(shí)為Trans表的date屬性,Time級(jí)別(day,month和year)是使用內(nèi)置函數(shù)從日期屬性中提取的。
這種應(yīng)用分析主要關(guān)注點(diǎn)是隨著不同維度和級(jí)別聚合交易數(shù)據(jù)。例如,圖1中的查詢Q1計(jì)算在美國(guó)每個(gè)帳戶,州和年國(guó)家交易的數(shù)量,并返回大于100的計(jì)數(shù)。如果AST1被定義在在圖2中,那么Q1可以重寫為NewQ1,訪問AST1替代訪問Trans表。假設(shè)每年消費(fèi)者平均進(jìn)行幾百次交易,其中大多數(shù)發(fā)生在相同的城市,AST1大約比Trans小幾百輩。因此,NewQ1應(yīng)該執(zhí)行效率比Q1更好。