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