莫新建
摘要:隨著目前信息技術(shù)及數(shù)據(jù)庫(kù)技術(shù)的不斷發(fā)展,各種數(shù)據(jù)庫(kù)系統(tǒng)得以出現(xiàn),并且有著越來(lái)越廣泛的應(yīng)用,而分布式數(shù)據(jù)庫(kù)系統(tǒng)就是其中比較重要的一種,因而保證分布式數(shù)據(jù)庫(kù)系統(tǒng)的有效運(yùn)行及應(yīng)用也就十分必要。在分布式數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)際應(yīng)用中,查詢(xún)功能屬于十分重要的一項(xiàng)功能,為能夠使用戶(hù)更好使用查詢(xún)功能,需要相關(guān)技術(shù)人員利用查詢(xún)優(yōu)化技術(shù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化,以實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)功能的更好發(fā)揮。
關(guān)鍵詞:分布式數(shù)據(jù)庫(kù);查詢(xún);優(yōu)化技術(shù)
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)13-0048-02
在當(dāng)前大數(shù)據(jù)時(shí)代背景下,各種數(shù)據(jù)信息數(shù)量也越來(lái)越多,因而對(duì)于各種數(shù)據(jù)庫(kù)系統(tǒng)也有著越來(lái)越高的要求,因而需要對(duì)各種數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行優(yōu)化。在當(dāng)前的分布式數(shù)據(jù)庫(kù)系統(tǒng)實(shí)際應(yīng)用中,為能夠使數(shù)據(jù)庫(kù)系統(tǒng)更好滿(mǎn)足實(shí)際應(yīng)用需求,需要有關(guān)管理人員及技術(shù)人員合理應(yīng)用查詢(xún)優(yōu)化技術(shù),對(duì)分布式數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行優(yōu)化,從而使數(shù)據(jù)庫(kù)系統(tǒng)的功能及作用得以完善,以實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)系統(tǒng)的更理想應(yīng)用,滿(mǎn)足人們的實(shí)際需求。
1分布式數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化技術(shù)現(xiàn)狀
就目前分布式數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化而言,通常情況下從以下兩個(gè)方面人手進(jìn)行綜合考慮,一方面是使響應(yīng)時(shí)間有效減少,而另外一個(gè)方面就是使網(wǎng)絡(luò)數(shù)據(jù)傳輸量減少。就傳統(tǒng)的分布式數(shù)據(jù)庫(kù)系統(tǒng)實(shí)際應(yīng)用情況而言,計(jì)算機(jī)內(nèi)部在對(duì)數(shù)據(jù)實(shí)行處理方面,其速度相比于網(wǎng)絡(luò)傳輸速度而言存在很大差距,但是若數(shù)據(jù)傳輸數(shù)量過(guò)大,會(huì)導(dǎo)致網(wǎng)絡(luò)所承受壓力也比較大,而這一問(wèn)題也是分布式數(shù)據(jù)庫(kù)的查詢(xún)優(yōu)化方面所存在的各種問(wèn)題中比較重要的一種,因而在分布式數(shù)據(jù)庫(kù)的查詢(xún)優(yōu)化方面,十分重要的一點(diǎn)就是使網(wǎng)絡(luò)數(shù)據(jù)傳遞量得以減少,提升其傳輸效率。另外,對(duì)于不同數(shù)據(jù)庫(kù)而言,其在數(shù)據(jù)傳輸方面的速度也有一定差異性存在,即便在相同數(shù)據(jù)庫(kù)之內(nèi),其數(shù)據(jù)查詢(xún)速度也有一定差異性存在,并且單個(gè)數(shù)據(jù)庫(kù)所花費(fèi)的數(shù)據(jù)查詢(xún)時(shí)間也具有不確定性,從而會(huì)導(dǎo)致整體查詢(xún)效率受到影響。對(duì)于這種情況的存在,在對(duì)數(shù)據(jù)查詢(xún)質(zhì)量進(jìn)行評(píng)價(jià)方面,不能單純將數(shù)據(jù)傳輸數(shù)量當(dāng)作標(biāo)準(zhǔn),應(yīng)當(dāng)對(duì)每個(gè)請(qǐng)求向?qū)?yīng)的響應(yīng)時(shí)間實(shí)行研究,而對(duì)于比較特殊的一些情況,還需要對(duì)響應(yīng)時(shí)間及傳輸速度進(jìn)行考慮,因而在對(duì)查詢(xún)優(yōu)化算法進(jìn)行設(shè)計(jì)時(shí)需要對(duì)這兩個(gè)方面衡量。對(duì)于分布式數(shù)據(jù)庫(kù)技術(shù)而言,其雖然比較復(fù)雜,在算法設(shè)計(jì)方面需要考慮的相關(guān)因素也比較多,但是這一方面的研究仍舊在不斷增多,同時(shí)也正是由于其具備多樣性及復(fù)雜性也就導(dǎo)致這一技術(shù)不斷創(chuàng)新,且其靈活性特點(diǎn)也使得其應(yīng)用越來(lái)越廣泛,因而需要對(duì)這一方面不斷加強(qiáng)研究。
2分布式數(shù)據(jù)庫(kù)的查詢(xún)優(yōu)化目標(biāo)
就目前數(shù)據(jù)庫(kù)系統(tǒng)查詢(xún)而言,對(duì)于集中式數(shù)據(jù)庫(kù)系統(tǒng)及分布式數(shù)據(jù)庫(kù)系統(tǒng)而言,其查詢(xún)方式都是齒形查詢(xún)的預(yù)期代價(jià)為基礎(chǔ)的,兩者之間存在才差異就是具體查詢(xún)代價(jià)在構(gòu)成上存在差異性。對(duì)于傳統(tǒng)集中式數(shù)據(jù)庫(kù)而言,系統(tǒng)通常情況下都會(huì)在計(jì)算機(jī)中運(yùn)行,因而其查詢(xún)代價(jià)構(gòu)成為CPU+I/O,對(duì)于分布式數(shù)據(jù)庫(kù)系統(tǒng)而言,由于數(shù)據(jù)查詢(xún)需要在站點(diǎn)間實(shí)現(xiàn)通信,因而其查詢(xún)代價(jià)不但包含基礎(chǔ)CPU+I/O,還需要對(duì)網(wǎng)絡(luò)中數(shù)據(jù)傳輸戴杰進(jìn)行考慮。由此可知,對(duì)分布式數(shù)據(jù)庫(kù)而言,其相比于集中式數(shù)據(jù)庫(kù),具有更高的查詢(xún)代價(jià),且有著更高的復(fù)雜程度。就目前分布式數(shù)據(jù)庫(kù)查詢(xún)而言,其中也對(duì)集中式數(shù)據(jù)庫(kù)查詢(xún)策略有所借鑒,但在查詢(xún)戴杰規(guī)模及具有優(yōu)化方式方面仍舊有一定擦異性。
在目前分布式數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化過(guò)程中,其目標(biāo)主要包括兩個(gè)方面。一方面就是使查詢(xún)總代價(jià)達(dá)到最小化,在分布式數(shù)據(jù)庫(kù)中,其查詢(xún)總代價(jià)的構(gòu)成包括CPU代價(jià)、I/O代價(jià)及數(shù)據(jù)通信代價(jià),另一方面就是使查詢(xún)響應(yīng)時(shí)間能夠最短化,由于分布式數(shù)據(jù)庫(kù)中的相關(guān)數(shù)據(jù)具有分布性及冗余性特點(diǎn),也就使得查詢(xún)中的并行處理可能性得以增強(qiáng),也就是說(shuō)在每次查詢(xún)時(shí)間得以減少的基礎(chǔ)上,且查詢(xún)處理可實(shí)現(xiàn)并行,則整體查詢(xún)處理時(shí)間也就可使有效減少。對(duì)于第一種目標(biāo)而言,通常情況下都認(rèn)為網(wǎng)絡(luò)傳輸中的速度相比于本地I/O速度及CPU速度而言明顯比較低,因而其重點(diǎn)內(nèi)容就是使網(wǎng)絡(luò)通信代價(jià)降低,從而使查詢(xún)優(yōu)化目的實(shí)現(xiàn);對(duì)于第二種目標(biāo)而言,通常情況下都認(rèn)為是使并行處理增加,在局部代價(jià)得以減少的基礎(chǔ)上,實(shí)現(xiàn)查詢(xún)優(yōu)化。對(duì)于這兩個(gè)目標(biāo)實(shí)現(xiàn)而言,其在優(yōu)化分布式數(shù)據(jù)庫(kù)方面有著十分重要的作用,依據(jù)對(duì)分布式數(shù)據(jù)庫(kù)有效分析,其數(shù)據(jù)系統(tǒng)組成包括若干個(gè)計(jì)算機(jī),因而可使查詢(xún)并行處理得以實(shí)現(xiàn),從而可使查詢(xún)時(shí)間明顯縮短,使分布式數(shù)據(jù)庫(kù)進(jìn)一步提升其查詢(xún)速度。在分布式數(shù)據(jù)庫(kù)系統(tǒng)查詢(xún)優(yōu)化方面,其內(nèi)容主要包括兩個(gè)方面,即查詢(xún)策略及局部處理,相比較而言查詢(xún)策略更重要,對(duì)于查詢(xún)策略選擇而言,其與分布式數(shù)據(jù)庫(kù)系統(tǒng)性能間存在密切關(guān)系。
3分布式數(shù)據(jù)庫(kù)系統(tǒng)查詢(xún)優(yōu)化技術(shù)方案及策略
在目前的分布式數(shù)據(jù)庫(kù)查詢(xún)過(guò)程中,為能夠使查詢(xún)得到滿(mǎn)意的效果,仍需要對(duì)查詢(xún)實(shí)行進(jìn)一步優(yōu)化,而在查詢(xún)優(yōu)化方面,為能夠得到滿(mǎn)意的效果,需要對(duì)相關(guān)技術(shù)方案進(jìn)行應(yīng)用,并且需要選擇有效策略。下面就分布式數(shù)據(jù)庫(kù)系統(tǒng)的查詢(xún)優(yōu)化技術(shù)方案及策略實(shí)行具體分析,從而使數(shù)據(jù)庫(kù)系統(tǒng)的查詢(xún)優(yōu)化得到滿(mǎn)意效果。
3.1分布式數(shù)據(jù)庫(kù)系統(tǒng)查詢(xún)優(yōu)化技術(shù)方案
在數(shù)據(jù)庫(kù)系統(tǒng)研究方面,十分重要的一點(diǎn)就是盡可能多地向用戶(hù)實(shí)行封裝數(shù)據(jù)庫(kù)操作,從而使數(shù)據(jù)庫(kù)系統(tǒng)通用性增強(qiáng),另外一點(diǎn)就是分布式數(shù)據(jù)庫(kù)系統(tǒng)還需要將系統(tǒng)內(nèi)有關(guān)細(xì)節(jié)對(duì)用戶(hù)進(jìn)行隱藏,使系統(tǒng)在實(shí)際使用過(guò)程中的安全性及便捷性得以增強(qiáng)。對(duì)于關(guān)系型數(shù)據(jù)庫(kù)而言,其能夠?qū)?shù)據(jù)接口提供給用戶(hù),全部數(shù)據(jù)均能夠利用該接口實(shí)行傳送,在利用sOL語(yǔ)句實(shí)行數(shù)據(jù)查詢(xún)過(guò)程中,只需要對(duì)所需查詢(xún)數(shù)據(jù)進(jìn)行簡(jiǎn)單描述,對(duì)于系統(tǒng)內(nèi)部獲得數(shù)據(jù)的情況并不需要的值。在用戶(hù)發(fā)送請(qǐng)求時(shí),分布式數(shù)據(jù)庫(kù)系統(tǒng)會(huì)對(duì)訪問(wèn)數(shù)據(jù)庫(kù)先進(jìn)行檢查,注意以是否在本地存在,若存在則需要進(jìn)行命令運(yùn)行,若不存在則需要?jiǎng)t請(qǐng)求向其他數(shù)據(jù)庫(kù)進(jìn)行廣播,依據(jù)查詢(xún)信息對(duì)最優(yōu)查詢(xún)節(jié)點(diǎn)實(shí)行選擇,在此基礎(chǔ)上便可實(shí)行查詢(xún),也就是說(shuō)對(duì)具備先關(guān)查詢(xún)信息所需數(shù)據(jù)庫(kù)的有關(guān)信息實(shí)行查詢(xún),且需要保證所需查詢(xún)資源達(dá)到最小化。在此之后,可按照地址將查詢(xún)命令向數(shù)據(jù)庫(kù)中進(jìn)行發(fā)送,向數(shù)據(jù)庫(kù)lP地址返回,在返回信息被客戶(hù)端接收之后,可與數(shù)據(jù)庫(kù)之間即刻構(gòu)建連接。在數(shù)據(jù)庫(kù)內(nèi)部查詢(xún)結(jié)束之后,可向客戶(hù)端發(fā)送回查詢(xún)信息。但需要注意的一點(diǎn)就是在利用這一方式實(shí)行信息更改及查詢(xún)過(guò)程中,需要對(duì)sQL語(yǔ)句實(shí)行應(yīng)用,因而需要查詢(xún)算法進(jìn)行有效探索,從而使查詢(xún)優(yōu)化具有更好的技術(shù)支持及基礎(chǔ)。
3.2分布式數(shù)據(jù)庫(kù)系統(tǒng)的查詢(xún)優(yōu)化策略
首先,通過(guò)合理設(shè)置索引實(shí)現(xiàn)查詢(xún)速度的提升。在目前的分布式數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)索引屬于十分重要的一種數(shù)據(jù)結(jié)構(gòu),為能夠?qū)崿F(xiàn)查詢(xún)速度的有效提升,應(yīng)當(dāng)注意遵循相關(guān)應(yīng)用原則,具體而言,在實(shí)際應(yīng)用過(guò)程中需要遵循的原則主要包括以下幾點(diǎn):選擇未指定為外鍵,但需頻繁連接的位置進(jìn)行索引設(shè)置,對(duì)于連接使用比較少的一些字段,可通過(guò)DBMS使索引自動(dòng)生成;在需頻繁排序及分組操作的有關(guān)列實(shí)行索引設(shè)置;在排序列數(shù)比較多的情況下,可進(jìn)行復(fù)合索引設(shè)置??傮w而言,在缺省狀態(tài)下進(jìn)行索引設(shè)置,可選擇非聚集類(lèi)型,但這種類(lèi)型并不一定屬于最合理類(lèi)型,對(duì)于適當(dāng)?shù)乃饕?lèi)型的選擇應(yīng)當(dāng)將分析查詢(xún)類(lèi)型為基礎(chǔ)及前提。比如,在有大量重復(fù)值出現(xiàn)的情況下,應(yīng)當(dāng)考慮對(duì)聚集索引進(jìn)行構(gòu)建,需要經(jīng)常進(jìn)行多列存取,且存在較多重復(fù)值的情況下,可對(duì)復(fù)合索引進(jìn)行構(gòu)建,對(duì)于復(fù)合索引的構(gòu)建應(yīng)當(dāng)盡量促使關(guān)鍵查詢(xún)中有索引覆蓋形成。
其次,應(yīng)當(dāng)注意盡量避免進(jìn)行排序或者精簡(jiǎn)排序。在分布式數(shù)據(jù)庫(kù)系統(tǒng)的查詢(xún)優(yōu)化過(guò)程中,對(duì)于一些大型數(shù)據(jù)表而言,應(yīng)盡量避免實(shí)行排序操作,在通過(guò)索引能夠依據(jù)一定次數(shù)輸出的情況下,便能夠有效避免出現(xiàn)排序操作,在數(shù)據(jù)查詢(xún)方面也就能夠提升其速度。同時(shí),也可以利用適當(dāng)增加索引方式實(shí)現(xiàn)排序操作的有效減少,且能夠?qū)崿F(xiàn)數(shù)據(jù)表適當(dāng)合并。此外,對(duì)于無(wú)法避免的一些排序情況,需要嘗試對(duì)其進(jìn)行簡(jiǎn)化,在使排序范圍不斷縮小的基礎(chǔ)上,盡量簡(jiǎn)化排序操作。
再次,對(duì)于大型數(shù)據(jù)表應(yīng)當(dāng)盡可能避免實(shí)行順序存取操作。對(duì)于分布式數(shù)據(jù)庫(kù)查詢(xún)而言,在數(shù)據(jù)查詢(xún)效率的各種影響因素中,嵌套查詢(xún)的順序存取有著重要影響,會(huì)導(dǎo)致數(shù)據(jù)查詢(xún)過(guò)程中的速度明顯降低,因而對(duì)于存在連接的相關(guān)列,實(shí)行索引方法的構(gòu)建,從而使大型數(shù)據(jù)表的順序存取操作得以避免,同時(shí)還能夠通過(guò)索引路徑的利用對(duì)查詢(xún)進(jìn)行處理,選擇并集方式可有效避免進(jìn)行順序存取。
第四,可利用臨時(shí)表促使數(shù)據(jù)查詢(xún)速度得以加快。在實(shí)際查詢(xún)過(guò)程中,對(duì)于數(shù)據(jù)表子集而言,通過(guò)對(duì)其實(shí)行排序,且實(shí)行相關(guān)臨時(shí)數(shù)據(jù)表構(gòu)建,可實(shí)現(xiàn)數(shù)據(jù)查詢(xún)效率的有效提升。對(duì)于臨時(shí)表行數(shù)而言,應(yīng)當(dāng)與主表相比比較少,因而可將I/O代價(jià)降低,使查詢(xún)操作工作量有效降低。此外,在臨時(shí)表得以構(gòu)建的基礎(chǔ)上,可有效避免實(shí)行重復(fù)排序操作,且能夠使優(yōu)化器操作得以有效降低。
第五,對(duì)于相對(duì)比較困難的正規(guī)表達(dá)式及有關(guān)子查詢(xún),應(yīng)當(dāng)盡可能避免,積極實(shí)現(xiàn)嵌套層次查詢(xún)的減少,使查詢(xún)效率得以有效提升,以避免在改變主查詢(xún)列值的情況,對(duì)于子查詢(xún)?nèi)孕柙俅螌?shí)行查詢(xún),從而使查詢(xún)時(shí)間得以有效節(jié)約,同時(shí)也能夠有效避免非開(kāi)始子串,使查詢(xún)得到滿(mǎn)意的效果p叫。
4結(jié)語(yǔ)
分布式數(shù)據(jù)庫(kù)屬于當(dāng)前應(yīng)用十分廣泛的一種數(shù)據(jù)庫(kù)類(lèi)型,并且在實(shí)際應(yīng)用中相比于傳統(tǒng)集中型數(shù)據(jù)庫(kù)表現(xiàn)出明顯的優(yōu)勢(shì),因而實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)系統(tǒng)的有效運(yùn)行十分必要。在當(dāng)前分布式數(shù)據(jù)庫(kù)的運(yùn)行過(guò)程中,十分重要的一點(diǎn)就是實(shí)行數(shù)據(jù)庫(kù)的查詢(xún),而在數(shù)據(jù)庫(kù)系統(tǒng)的查詢(xún)優(yōu)化方面,需要實(shí)行查詢(xún)優(yōu)化,因而相關(guān)研究人員及技術(shù)人員需要在這一方面加強(qiáng)投入力度,從而使數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化得到滿(mǎn)意的效果,為分布式數(shù)據(jù)庫(kù)系統(tǒng)的更好運(yùn)行及查詢(xún)提供更好的基礎(chǔ)與保障,使其得以更理想地發(fā)展。