国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

分布式數(shù)據(jù)庫(kù)查詢策略的優(yōu)化方法

2014-04-29 18:46:48王立峰
電腦知識(shí)與技術(shù) 2014年21期
關(guān)鍵詞:優(yōu)化方法

王立峰

摘要:分布式數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)有機(jī)的結(jié)合,它可以將不同區(qū)域的資源進(jìn)行共享,從而有效的提高工作效率。從邏輯上講分布式數(shù)據(jù)庫(kù)是一個(gè)整體,具有冗余性和分布性,使得查詢數(shù)據(jù)變得較為麻煩,因此如何優(yōu)化分布式數(shù)據(jù)庫(kù)的查詢策略,提高其查詢效率成為該文的一個(gè)研究重點(diǎn)。

關(guān)鍵詞:分布式數(shù)據(jù)庫(kù);查詢策略;優(yōu)化方法

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)21-4967-02

1 緒論

從物理上來(lái)講,分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)分布在計(jì)算機(jī)的各個(gè)不同站點(diǎn)上,這些數(shù)據(jù)是一個(gè)邏輯的整體,同由分布式數(shù)據(jù)庫(kù)進(jìn)行全局的管理。分布式數(shù)據(jù)庫(kù)的作用主要是存儲(chǔ)數(shù)據(jù)和方便、快捷的查詢數(shù)據(jù),因此查詢策略的優(yōu)化已經(jīng)成為了分布式數(shù)據(jù)庫(kù)的一個(gè)核心問(wèn)題。該文主要論述了分布式數(shù)據(jù)庫(kù)的查詢策略以及一些有效的優(yōu)化方法和提高策略。

2 分布式數(shù)據(jù)庫(kù)及查詢優(yōu)化分析

分布式數(shù)據(jù)庫(kù)系統(tǒng)從物理上來(lái)講是分散的,而從邏輯上來(lái)講是一個(gè)統(tǒng)一的系統(tǒng),它是將分布在不同站點(diǎn)上的邏輯單位通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)連接起來(lái)。按照數(shù)據(jù)模型的類型,分布式數(shù)據(jù)庫(kù)系統(tǒng)可以分為同構(gòu)同質(zhì)型DDBS、同構(gòu)異質(zhì)型DDBS以及異構(gòu)型DDBS三種[1]。同構(gòu)同質(zhì)型DDBS中多種數(shù)據(jù)庫(kù)類型采用了同樣的型號(hào),而且數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)模型屬于一個(gè)類型;同構(gòu)異質(zhì)型DDBS數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)模型采用的也是同一型號(hào),但是數(shù)據(jù)庫(kù)類型卻不相同;異構(gòu)型DDBS中的數(shù)據(jù)庫(kù)類型和數(shù)據(jù)模型均不一樣。

按照分布式數(shù)據(jù)庫(kù)的控制系統(tǒng)可以將分布式數(shù)據(jù)庫(kù)系統(tǒng)分為集中式DDBS、分散性DDBS以及可變型DDBS。集中式DDBS在一個(gè)節(jié)點(diǎn)上保存全局的控制信息,所以容易實(shí)現(xiàn)整個(gè)分布式系統(tǒng)的數(shù)據(jù)一致性;但是這一種分布式系統(tǒng)存在一定的單點(diǎn)故障,一旦存放全局控制信息的節(jié)點(diǎn)出現(xiàn)問(wèn)題,整個(gè)分布式系統(tǒng)將不能繼續(xù)使用。分散性DDBS在每個(gè)節(jié)點(diǎn)上都保存了全局控制信息的一個(gè)副本,雖然這樣可以保證整個(gè)分布式系統(tǒng)的穩(wěn)定性,但是卻難以保證所有節(jié)點(diǎn)上數(shù)據(jù)的一致性。可變型DDBS綜合了上述兩種分布式系統(tǒng)的優(yōu)勢(shì),只有一部分節(jié)點(diǎn)保存全局控制信息,這些節(jié)點(diǎn)被稱為主節(jié)點(diǎn);沒(méi)有保存全局控制信息的節(jié)點(diǎn)稱為輔節(jié)點(diǎn)。

對(duì)分布式數(shù)據(jù)庫(kù)系統(tǒng)而言,數(shù)據(jù)庫(kù)中數(shù)據(jù)的分布性使其查詢操作比一般的數(shù)據(jù)庫(kù)更加復(fù)雜,而且目前還沒(méi)有一種能夠適用于所有分布式數(shù)據(jù)庫(kù)系統(tǒng)的有效方案。從眾多的數(shù)據(jù)查詢方法中找到一種最優(yōu)方案就成了衡量分布式數(shù)據(jù)庫(kù)系統(tǒng)的重要依據(jù)。一般而言,衡量數(shù)據(jù)查詢方法優(yōu)劣的重要依據(jù)是查詢代價(jià)和響應(yīng)時(shí)間,即在數(shù)據(jù)查詢期間,數(shù)據(jù)查詢操作所耗費(fèi)的處理器代價(jià)是否足夠小,數(shù)據(jù)查詢的響應(yīng)時(shí)間是否足夠短。除此之外,分布式數(shù)據(jù)庫(kù)數(shù)據(jù)的分布性,使得在進(jìn)行數(shù)據(jù)查詢的優(yōu)化時(shí),還要考慮網(wǎng)絡(luò)通信因素。在對(duì)分布式數(shù)據(jù)庫(kù)的查詢策略優(yōu)化時(shí),一般有兩種優(yōu)化目標(biāo)[2]:降低查詢代價(jià)或縮短數(shù)據(jù)查詢的響應(yīng)時(shí)間。查詢代價(jià)由處理器的執(zhí)行時(shí)間和輸入/輸出的處理時(shí)間兩部分組成,在降低網(wǎng)絡(luò)通信代價(jià)的同時(shí)可以減小查詢代價(jià),從而起到優(yōu)化分布式數(shù)據(jù)庫(kù)查詢操作的作用。分布式數(shù)據(jù)庫(kù)能夠進(jìn)行數(shù)據(jù)的并行查詢,并行處理操作降低了查詢時(shí)間。

在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,查詢操作主要有遠(yuǎn)程查詢、本地查詢以及全局查詢?nèi)N類型。本地查詢只在本節(jié)點(diǎn)上查詢數(shù)據(jù)庫(kù)數(shù)據(jù),遠(yuǎn)程查詢可能在其他節(jié)點(diǎn)上查詢數(shù)據(jù),全局查詢會(huì)在多個(gè)節(jié)點(diǎn)上查詢數(shù)據(jù),所以可以認(rèn)為是局部查詢和全局查詢的結(jié)合。遠(yuǎn)程查詢和全局查詢會(huì)查詢其他節(jié)點(diǎn)上的數(shù)據(jù),所以會(huì)涉及到網(wǎng)絡(luò)通信,研究查詢優(yōu)化算法時(shí),這二者是經(jīng)常需要研究的該節(jié)點(diǎn)。進(jìn)行遠(yuǎn)程查詢時(shí),由于不同節(jié)點(diǎn)的通信代價(jià)不同,所以選擇不同的分布式數(shù)據(jù)庫(kù)節(jié)點(diǎn)可能會(huì)得到不同的查詢效率,如何選擇分布式節(jié)點(diǎn)以得到最小的查詢代價(jià),就是查詢優(yōu)化的一個(gè)重要問(wèn)題。全局查詢會(huì)涉及到多個(gè)節(jié)點(diǎn),比遠(yuǎn)程查詢更復(fù)雜;為使執(zhí)行全局查詢時(shí)得到較好的優(yōu)化結(jié)果,通常要完成四種優(yōu)化策略[3]:(1) 數(shù)據(jù)副本個(gè)數(shù)的確定。分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)一般是冗余存儲(chǔ)的,即一份數(shù)據(jù)可能保存到多個(gè)分布式節(jié)點(diǎn)上。如果一個(gè)查詢涉及到的所有數(shù)據(jù)都只有一份副本,那么此查詢過(guò)程就可以稱為非冗余具體化,否則的話就稱為冗余具體化。當(dāng)查詢數(shù)據(jù)有多個(gè)副本時(shí),不同的數(shù)據(jù)片段會(huì)影響查詢效率,所以首先需要確定查詢數(shù)據(jù)的副本個(gè)數(shù)。(2) 確定操作順序。分布式數(shù)據(jù)查詢一般包括投影、選擇以及排序等操作,選擇和投影操作會(huì)從全部數(shù)據(jù)集中選擇一小部分?jǐn)?shù)據(jù),會(huì)減少查詢的數(shù)據(jù)量,所以一般可以先執(zhí)行;連接等查詢操作會(huì)增加數(shù)據(jù)量,而且會(huì)涉及到多個(gè)分片,所以一般后執(zhí)行。(3) 確定執(zhí)行方法和執(zhí)行節(jié)點(diǎn)。有的操作會(huì)產(chǎn)生比較大的時(shí)間開(kāi)銷或代價(jià),所以可以選擇其替代方案;同時(shí)要盡量選擇系統(tǒng)空閑、效率比較高的節(jié)點(diǎn)執(zhí)行查詢操作。

分布式數(shù)據(jù)庫(kù)查詢操作從過(guò)程上分為四層[4]:分布式數(shù)據(jù)查詢分解、數(shù)據(jù)庫(kù)數(shù)據(jù)的本地化、全局優(yōu)化以及局部?jī)?yōu)化。

作為分布式數(shù)據(jù)庫(kù)查詢優(yōu)化的第一層,查詢分解(query decomposition)的作用是將全局模式中轉(zhuǎn)換為SQL語(yǔ)句。數(shù)據(jù)庫(kù)數(shù)據(jù)的本地化(data loclization)根據(jù)數(shù)據(jù)庫(kù)的分片信息,把全局查詢轉(zhuǎn)換為數(shù)據(jù)庫(kù)分片上的查詢,從而實(shí)現(xiàn)全局查詢操作的本地化。全局優(yōu)化(global optimization)從本地化查詢中找到一個(gè)最佳的查詢次序,以盡量降低查詢的代價(jià);在全局優(yōu)化過(guò)程中,對(duì)數(shù)據(jù)庫(kù)表的連接操作進(jìn)行優(yōu)化將是一個(gè)重要方向;經(jīng)過(guò)全局優(yōu)化后,原來(lái)的數(shù)據(jù)會(huì)變?yōu)橐粋€(gè)經(jīng)過(guò)優(yōu)化的、數(shù)據(jù)庫(kù)分片上的關(guān)系代數(shù)查詢。局部?jī)?yōu)化(local optimization)在每個(gè)分布式節(jié)點(diǎn)上執(zhí)行數(shù)據(jù)分片的查詢,并進(jìn)行此節(jié)點(diǎn)上的優(yōu)化。這四層在分布式數(shù)據(jù)查詢優(yōu)化上起到的作用是不盡相同的,第二層和第三層是優(yōu)化的核心;不論是哪層的優(yōu)化操作,都離不開(kāi)對(duì)連接操作的優(yōu)化,連接操作由于會(huì)涉及到在多個(gè)節(jié)點(diǎn)間進(jìn)行數(shù)據(jù)傳輸,所以會(huì)有較大的網(wǎng)絡(luò)通信開(kāi)銷,當(dāng)前處理連接操作的優(yōu)化算法主要分為基于連接的查詢優(yōu)化算法和基于非連接的查詢優(yōu)化算法。

3 基于哈希算法的分布式查詢優(yōu)化方法

分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)關(guān)系一般會(huì)分布到不同節(jié)點(diǎn)上,如果要對(duì)兩個(gè)關(guān)系做連接操作,最佳情況是盡可能少的傳輸數(shù)據(jù);只要節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)和應(yīng)用的相關(guān)性越大,連接操作所涉及的數(shù)據(jù)傳輸就越小,這種依賴關(guān)系稱為“站點(diǎn)依賴”。如果兩個(gè)關(guān)系不滿足站點(diǎn)依賴,就需要先將元組個(gè)數(shù)少的那個(gè)關(guān)系復(fù)制到另外一個(gè)關(guān)系所在的節(jié)點(diǎn)上,然后進(jìn)行連接操作。如果兩個(gè)關(guān)系元組個(gè)數(shù)都很多,那么就需要對(duì)它們進(jìn)行數(shù)據(jù)分片,Hash算法是一種有效的數(shù)據(jù)分片方法。

Hash算法對(duì)要進(jìn)行連接操作的某屬性進(jìn)行運(yùn)算,計(jì)算此關(guān)系中所有元組的Hash值,并把Hash值相同的元組放到同一個(gè)節(jié)點(diǎn)上,在每個(gè)節(jié)點(diǎn)上的關(guān)系片段都滿足站點(diǎn)依賴關(guān)系。最簡(jiǎn)單的Hash函數(shù)是對(duì)關(guān)系進(jìn)行取模運(yùn)算,并將Hash值為奇數(shù)的元組劃分到同一節(jié)點(diǎn),Hash值為偶數(shù)的元組分到其他節(jié)點(diǎn)。對(duì)于多個(gè)關(guān)系的運(yùn)算,Hash算法會(huì)首先分析這些關(guān)系在某一屬性列上的元組值,如果多數(shù)元組值呈現(xiàn)奇偶均勻分布,那么就可以對(duì)這些關(guān)系進(jìn)行模2取余操作,并按照簡(jiǎn)單Hash函數(shù)的元組劃分策略進(jìn)行分配。如果在這一屬性列上的元組值呈現(xiàn)大小寫字母均勻分布,那么可以類似的將Hash值為大寫字母的元組分配到一個(gè)站點(diǎn),Hash值為小寫字母的元組分配到另外一個(gè)站點(diǎn)。

當(dāng)分布式數(shù)據(jù)庫(kù)關(guān)系的個(gè)數(shù)多于兩個(gè)時(shí),利用Hash算法劃分元組的情況更加復(fù)雜。以三個(gè)關(guān)系R1、R2以及R3為例,它們的元組可能分布在兩個(gè)、三個(gè)甚至更多的節(jié)點(diǎn)上;元組分布的節(jié)點(diǎn)越多,越難以選擇合適的Hash函數(shù),此處先考慮兩個(gè)節(jié)點(diǎn)的情況。當(dāng)只有兩個(gè)節(jié)點(diǎn)時(shí),這三個(gè)關(guān)系的連接可能是相同屬性列的連接,也可能是不同屬性列的連接;當(dāng)對(duì)相同屬性列進(jìn)行連接時(shí)相對(duì)簡(jiǎn)單,可以先求得元組在某一屬性列上的Hash值,然后對(duì)這三個(gè)關(guān)系進(jìn)行劃分,得到滿足站點(diǎn)依賴關(guān)系的分布式數(shù)據(jù)。當(dāng)對(duì)不同屬性列進(jìn)行連接操作時(shí),由于連接操作是在兩個(gè)不同屬性上進(jìn)行的,所以只選擇一個(gè)Hash函數(shù)會(huì)得到兩組不同、可能有沖突的Hash值,也就是說(shuō)一個(gè)關(guān)系上的同一元組,根據(jù)不同的屬性列得到的分配節(jié)點(diǎn)可能不同,既可能被分配到節(jié)點(diǎn)1,也可能被分配到節(jié)點(diǎn)2,無(wú)疑會(huì)造成困擾。對(duì)這種問(wèn)題的解決方法是[5]:以某一屬性列作為關(guān)鍵詞,對(duì)其做Hash運(yùn)算后,分別將關(guān)系R1、R2分配到節(jié)點(diǎn)1和節(jié)點(diǎn)2上,然后再用同一個(gè)Hash函數(shù)對(duì)另外一個(gè)屬性列做Hash運(yùn)算,并分別將關(guān)系R2、R3分配到節(jié)點(diǎn)1和節(jié)點(diǎn)2上;此時(shí)關(guān)系R2上的元組雖然可能分布在節(jié)點(diǎn)1和節(jié)點(diǎn)2上,但R1和R3都完全分布在一個(gè)節(jié)點(diǎn)上,使占原來(lái)2/3的數(shù)據(jù)完全滿足站點(diǎn)依賴關(guān)系,從而提高了分布式數(shù)據(jù)查詢的效率。對(duì)于多于三個(gè)的關(guān)系時(shí),對(duì)相同屬性的連接操作也比較簡(jiǎn)單;當(dāng)要連接的是不同的屬性時(shí),可以先對(duì)要連接的屬性列進(jìn)行分組,再對(duì)每組的屬性按照上面的方法進(jìn)行連接即可。

4 結(jié)論

本文首先講述了分布式數(shù)據(jù)庫(kù)系統(tǒng),并分析了分布式數(shù)據(jù)庫(kù)系統(tǒng)中可以進(jìn)行查詢優(yōu)化之處,最后對(duì)分布式查詢的方法進(jìn)行了優(yōu)化,提出一種基于哈希算法的分布式查詢優(yōu)化方法;本文提出的基于哈希算法的分布式查詢優(yōu)化方法可以有效優(yōu)化分布式數(shù)據(jù)庫(kù)查詢效率,對(duì)后續(xù)研究有一定的參考價(jià)值。

參考文獻(xiàn):

[1] 朱建生,汪健雄,張軍鋒.基于NoSQL數(shù)據(jù)庫(kù)的大數(shù)據(jù)查詢技術(shù)的研究與應(yīng)用[J].中國(guó)鐵道科學(xué),2014,1(16).

[2] 于洪濤,錢磊.一種改進(jìn)的分布式查詢優(yōu)化算法[J].計(jì)算機(jī)工程與應(yīng)用,2013,6(8).

[3] 趙榮.分布式數(shù)據(jù)庫(kù)查詢優(yōu)化方法[J].科技視界,2013,5(28).

[4] 何愛(ài)華,戚曉明.半聯(lián)接計(jì)劃的全局查詢優(yōu)化策略研究[J].重慶科技學(xué)院學(xué)報(bào):自然科學(xué)版, 2012,5(1).

[5] 鄧松,林為民,張濤,馬媛媛.基于禁忌GEP的分布式數(shù)據(jù)庫(kù)查詢優(yōu)化算法[J].計(jì)算機(jī)與數(shù)字工程,2013,10(17).

猜你喜歡
優(yōu)化方法
小學(xué)低年級(jí)音樂(lè)教育技術(shù)優(yōu)化探尋
考試周刊(2016年10期)2017-01-12 07:47:09
地下室結(jié)構(gòu)限額設(shè)計(jì)及優(yōu)化方法
基于知識(shí)元和有色Petri網(wǎng)的應(yīng)急實(shí)施流程優(yōu)化方法
優(yōu)化教學(xué)方法,打造高效的小學(xué)數(shù)學(xué)課堂
智能建筑暖通空調(diào)系統(tǒng)優(yōu)化方法研究
計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)質(zhì)量?jī)?yōu)化方法
學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)查詢優(yōu)化方法研究 
靈活運(yùn)用多媒體,優(yōu)化語(yǔ)文教學(xué)
考試周刊(2016年77期)2016-10-09 10:43:12
優(yōu)化電力通信網(wǎng)運(yùn)行方式
科技視界(2016年20期)2016-09-29 13:51:12
巧用信息技術(shù),優(yōu)化語(yǔ)文課堂教學(xué)
考試周刊(2016年36期)2016-05-28 00:04:26
定兴县| 青龙| 盖州市| 晴隆县| 乳山市| 宁蒗| 观塘区| 宜黄县| 互助| 昭平县| 出国| 安吉县| 会同县| 台中县| 房产| 广汉市| 子长县| 措勤县| 民乐县| 临西县| 荃湾区| 谢通门县| 科尔| 宣威市| 深圳市| 余江县| 阳曲县| 浑源县| 韶关市| 河曲县| 曲靖市| 元氏县| 淮北市| 潼南县| 博客| 景德镇市| 乌恰县| 齐河县| 宜阳县| 罗定市| 湛江市|