于隆
摘要:隨著數(shù)據(jù)集的日益增大和查詢需求的日漸復(fù)雜,對(duì)數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的優(yōu)化、進(jìn)而提高查詢效率是非常必要的。本文針對(duì)數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的4種物理結(jié)構(gòu)進(jìn)行介紹,并對(duì)優(yōu)化的關(guān)鍵技術(shù)進(jìn)行分析,為進(jìn)一步的優(yōu)化研究提供參考。
關(guān)鍵詞:數(shù)據(jù)庫(kù);物理結(jié)構(gòu);優(yōu)化技術(shù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)05-0014-02
Abstract: With the increasing of data sets and the increasing complexity of query requirements, it is necessary to optimize the physical structure of the database and improve query efficiency. In this paper, the physical structure of the database four physical structure are introduced, and the optimization of the key technologies for further optimization of the study to provide a reference.
Key words: database; physical structure; optimization technique
數(shù)據(jù)庫(kù)物理結(jié)構(gòu)優(yōu)化指的事對(duì)數(shù)據(jù)庫(kù)系統(tǒng)性能的改進(jìn)。在對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢時(shí),只有執(zhí)行了適當(dāng)?shù)恼Z(yǔ)句,使用了合適的存取路徑,才能發(fā)揮數(shù)據(jù)庫(kù)的優(yōu)勢(shì)所在。而今大數(shù)據(jù)的發(fā)展使得傳統(tǒng)的數(shù)據(jù)庫(kù)物理結(jié)構(gòu)不能滿足巨大數(shù)據(jù)量的需求,這需要我們提出更為優(yōu)化的物理結(jié)構(gòu),真正提高系統(tǒng)性能。
1 數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)
1.1 索引
索引是一種用于快速檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù)所在位置的對(duì)象,和圖書(shū)最開(kāi)始的目錄有相似的功能。使用索引不僅可以提高對(duì)數(shù)據(jù)的讀取速度,提升數(shù)據(jù)庫(kù)的性能,同時(shí)還能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)資源的靶向搜索,為數(shù)據(jù)庫(kù)管理員提供方便。但是創(chuàng)建索引需要占用很多存儲(chǔ)空間,長(zhǎng)期對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改的操作后也應(yīng)對(duì)索引進(jìn)行維護(hù),所以在創(chuàng)建索引時(shí),要從創(chuàng)建索引的必要性和對(duì)存儲(chǔ)空間的有效利用等多方面進(jìn)行綜合考慮。在對(duì)數(shù)據(jù)表進(jìn)行更新后,也要考慮之前創(chuàng)建的相關(guān)索引是否有更新或刪除的必要。
1.2 物化視圖
物化視圖和索引相似,也都是為了提高查詢效率而產(chǎn)生的一種數(shù)據(jù)庫(kù)對(duì)象。它是提前將一些較為復(fù)雜的查詢語(yǔ)句及查詢結(jié)果保存在基表上,在執(zhí)行相同查詢的時(shí)候就可以直接對(duì)已創(chuàng)建的物化視圖進(jìn)行訪問(wèn),減少了一些不必要的耗時(shí)操作。物化視圖包括只讀物化視圖、可更新物化視圖和可寫(xiě)物化視圖三種。只讀物化視圖是基于源數(shù)據(jù)庫(kù)建立的只讀環(huán)境;第二種可更新的物化視圖則提供了一個(gè)可雙向復(fù)制的環(huán)境;可寫(xiě)物化視圖在建立之初使用了“FOR UPDATE”,可在本地對(duì)物化視圖進(jìn)行修改,但不能保存,所以在實(shí)際應(yīng)用中很少使用。
1.3 無(wú)共享分區(qū)
無(wú)共享分區(qū)對(duì)數(shù)據(jù)庫(kù)采取了“分而治之”的思想,用于解決復(fù)雜的數(shù)據(jù)集問(wèn)題。它的思想具體就是把問(wèn)題域劃分成若干子集,其中每個(gè)子集都會(huì)有一個(gè)相應(yīng)的服務(wù)器。在執(zhí)行對(duì)數(shù)據(jù)集的操作時(shí),每個(gè)服務(wù)器只解決相對(duì)應(yīng)子集的問(wèn)題域,不過(guò)有時(shí)服務(wù)器間也會(huì)互相協(xié)作。也就是說(shuō),使用無(wú)共享分區(qū)的目的就是要降低各個(gè)節(jié)點(diǎn)間數(shù)據(jù)共享的程度,實(shí)現(xiàn)各服務(wù)器節(jié)點(diǎn)都可以在并行模式下獨(dú)立工作。
1.4 多維群集
多維集群(MDC)是一種組織數(shù)據(jù)表的方法,指的是使用多維立方體進(jìn)行組織,并靈活地將類似維群集的方式。多維群集可允許同時(shí)依據(jù)多個(gè)維度對(duì)數(shù)據(jù)表進(jìn)行物理群集,還可結(jié)合索引中的聚集索引自動(dòng)更新數(shù)據(jù)查詢的概率,因此在大型數(shù)據(jù)庫(kù)環(huán)境及聯(lián)機(jī)處理環(huán)境中使用具有明顯優(yōu)勢(shì)。目前多維群集多使用在數(shù)據(jù)挖掘等方面,可以提升用戶索引的查詢范圍與性能,減少數(shù)據(jù)維護(hù)過(guò)程的操作開(kāi)銷(xiāo)。
2 數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)優(yōu)化技術(shù)
2.1 工作負(fù)荷壓縮技術(shù)
數(shù)據(jù)庫(kù)的使用在數(shù)據(jù)庫(kù)系統(tǒng)管理和優(yōu)化中是非常重要的一部分。在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)訪問(wèn)均以工作負(fù)荷的形式表述,這里的工作負(fù)荷是一組結(jié)構(gòu)化查詢語(yǔ)句的集合。在對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理工作時(shí),類如對(duì)查詢的優(yōu)化,建立索引的選擇、物化視圖的選擇等,影響其可擴(kuò)展性的重要因素之一就是工作負(fù)荷的大小?,F(xiàn)使用的工作負(fù)荷壓縮技術(shù)就是為了解決這個(gè)問(wèn)題,是實(shí)現(xiàn)數(shù)據(jù)庫(kù)物理結(jié)構(gòu)優(yōu)化的關(guān)鍵技術(shù)之一。
工作負(fù)荷作為物理設(shè)計(jì)調(diào)整工具的重要輸入項(xiàng)之一,其質(zhì)量?jī)?yōu)劣將對(duì)優(yōu)化結(jié)果有直接影響。一個(gè)中型數(shù)據(jù)庫(kù)在日常使用中,每天都要執(zhí)行幾千甚至幾萬(wàn)次SQL語(yǔ)句的查詢或者更新,而這些語(yǔ)句有些可能只是幾個(gè)參數(shù)的差別,這時(shí)可以設(shè)定一個(gè)相似指標(biāo),當(dāng)相似度達(dá)到相似指標(biāo)時(shí),就對(duì)SQL語(yǔ)句進(jìn)行冗余處理,只留下一條作為代表,這樣可以減小工作負(fù)荷的數(shù)量。這也是Chaudhuri等人在21世紀(jì)初提出的工作負(fù)荷壓縮方法。在工作負(fù)荷壓縮過(guò)程中,首先要保證壓縮后的工作負(fù)荷集能夠完全取代壓縮前的工作負(fù)荷集,不會(huì)有功能性的遺漏;還要保證壓縮后的工作負(fù)荷集在使用時(shí)效率有明顯提高。
2.2 如果假設(shè)分析技術(shù)
在進(jìn)行數(shù)據(jù)庫(kù)管理的過(guò)程中,為了能夠?qū)π枰膭?dòng)的配置進(jìn)行預(yù)評(píng)估,管理者常常需要進(jìn)行系統(tǒng)分析。如果假設(shè)分析技術(shù)可以在某種特定場(chǎng)景下,對(duì)復(fù)雜系統(tǒng)進(jìn)行未來(lái)行為的模擬和檢查,為管理者提出決策提供有力依據(jù)。在對(duì)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)優(yōu)化技術(shù)中,如果假設(shè)分析技術(shù)是針對(duì)物理配置價(jià)值分析的關(guān)鍵技術(shù)。利用此技術(shù)進(jìn)行優(yōu)化的過(guò)程結(jié)構(gòu)如下圖所示。
在數(shù)據(jù)結(jié)構(gòu)優(yōu)化領(lǐng)域,使用如果假設(shè)分析技術(shù)可以采用不同的策略或者配置方案,通過(guò)調(diào)用查詢優(yōu)化器對(duì)所有方案進(jìn)行評(píng)估,以得出最佳決策。如果假設(shè)分析的輸入?yún)?shù)一般為工作負(fù)荷和一組數(shù)據(jù)結(jié)構(gòu)的配置,相對(duì)應(yīng)輸出的就是基于此執(zhí)行查詢的成本。例如在對(duì)數(shù)據(jù)表建立索引時(shí),為了選擇出最合適的索引,就會(huì)先根據(jù)工作負(fù)荷分析所有可能的索引配置,然后使用如果假設(shè)分析技術(shù)進(jìn)行逐條評(píng)估,最終返回各個(gè)索引工作負(fù)荷的成本估計(jì),比較得出耗用成本最小的索引作為最優(yōu)索引。
2.3 成本估計(jì)和數(shù)據(jù)抽樣技術(shù)
成本估計(jì)是數(shù)據(jù)庫(kù)進(jìn)行物理結(jié)構(gòu)優(yōu)化的核心,也是決定優(yōu)化程度的主要因素。在20世紀(jì)末,Chaudhuri等人提出使用查詢優(yōu)化器進(jìn)行索引的選擇,并利用統(tǒng)計(jì)數(shù)據(jù)建立良好的評(píng)估模型,這大幅度提高了推薦優(yōu)化的質(zhì)量。而由于現(xiàn)代數(shù)據(jù)庫(kù)的數(shù)據(jù)量在與日俱增,為協(xié)調(diào)大數(shù)據(jù)背景下統(tǒng)計(jì)數(shù)據(jù)過(guò)程中質(zhì)量和效率的關(guān)系,數(shù)據(jù)抽樣技術(shù)被加以應(yīng)用。
在大數(shù)據(jù)集中進(jìn)行數(shù)據(jù)統(tǒng)計(jì)操作是會(huì)耗費(fèi)很長(zhǎng)時(shí)間的,所以現(xiàn)今我們常使用數(shù)據(jù)抽樣技術(shù)實(shí)現(xiàn)近似統(tǒng)計(jì)。近似統(tǒng)計(jì)結(jié)果的準(zhǔn)確度不如直接統(tǒng)計(jì)的結(jié)果準(zhǔn)確,但是近似統(tǒng)計(jì)會(huì)節(jié)約大量的時(shí)間成本。在對(duì)精確度的要求不是很高時(shí),采用數(shù)據(jù)抽樣技術(shù)實(shí)現(xiàn)近似統(tǒng)計(jì)更為高效。數(shù)據(jù)庫(kù)中的數(shù)據(jù)抽樣技術(shù)包括簡(jiǎn)單隨機(jī)抽樣、伯努利抽樣、系統(tǒng)抽樣和分層抽樣四種。簡(jiǎn)單隨機(jī)抽樣就是在抽樣時(shí)在數(shù)據(jù)集中隨機(jī)抽取數(shù)據(jù)作為樣本個(gè)體,這種方法簡(jiǎn)單高效,并能保證每個(gè)個(gè)體被抽中的概率都是相等的,樣本個(gè)體間也是相互獨(dú)立的。伯努利抽樣是SQL標(biāo)準(zhǔn)的一部分,也是如今大部分主流數(shù)據(jù)庫(kù)廠商最常使用的抽樣方法,粒度小、效率高。但由于它是在行級(jí)別進(jìn)行的一種抽樣方法,所以性能較差,常與索引結(jié)合使用以彌補(bǔ)不足。系統(tǒng)抽樣是先將數(shù)據(jù)集按照某種既定順序進(jìn)行排列再進(jìn)行取樣,樣本個(gè)體間隔相同。使用系統(tǒng)抽樣的方法在性能角度會(huì)有所改善,但有時(shí)抽樣效果不夠理想。分層抽樣則是伯努利抽樣和系統(tǒng)抽樣的結(jié)合,將優(yōu)勢(shì)和不足進(jìn)行這種處理的方式。在部分商業(yè)數(shù)據(jù)庫(kù)中常采用此種抽樣方式。
2.4 組合優(yōu)化的搜索算法
組合優(yōu)化整合了組合數(shù)學(xué)、線性規(guī)劃以及算法理論的方法和技巧,在過(guò)去的十多年中在遠(yuǎn)程通訊、產(chǎn)品運(yùn)銷(xiāo)和超大規(guī)模集成電路等領(lǐng)域發(fā)展迅速。在數(shù)據(jù)庫(kù)系統(tǒng)中要面臨巨大空間的搜索問(wèn)題時(shí),枚舉法顯然已經(jīng)不能再滿足系統(tǒng)需求。取代它的是一些在組合優(yōu)化問(wèn)題上常用的搜索算法,例如遺傳算法,模擬退火算法,禁忌搜索算法等。以遺傳算法為例,它是一種通過(guò)模擬自然的進(jìn)化過(guò)程找尋最優(yōu)解的方法,基本運(yùn)算過(guò)程如下圖所示。遺傳算法使用的事概率的思想,通過(guò)迭代進(jìn)行選擇,具有一定的隨機(jī)性和可擴(kuò)展性,并且覆蓋面廣,得出的結(jié)果更為接近最優(yōu)。但是編程實(shí)現(xiàn)的過(guò)程比較復(fù)雜,并且在適應(yīng)度函數(shù)選擇不當(dāng)?shù)臅r(shí)候得到的結(jié)果可能并不是全局最優(yōu)。
3 結(jié)語(yǔ)
使用數(shù)據(jù)庫(kù)可以很大程度上提高企業(yè)和事業(yè)單位的工作效率,也方便了數(shù)據(jù)的存儲(chǔ)。隨著數(shù)據(jù)量的日益增多,優(yōu)化數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),提高數(shù)據(jù)庫(kù)性能十分重要。通過(guò)以上幾種對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化方式分析,在實(shí)際應(yīng)用中結(jié)合需求有選擇地進(jìn)行優(yōu)化,最終達(dá)到提高工作效率的目的。
參考文獻(xiàn):
[1] 崔躍生,張勇,曾春,等. 數(shù)據(jù)庫(kù)物理結(jié)構(gòu)優(yōu)化技術(shù)[J]. 軟件學(xué)報(bào),2013,24(4):761?780.
[2] 呂靜.分析數(shù)據(jù)庫(kù)物理結(jié)構(gòu)的優(yōu)化技術(shù)[J]. 通訊世界,2015(6):287-288.
[3] 張學(xué)棟,胡偉強(qiáng). 數(shù)據(jù)庫(kù)物理結(jié)構(gòu)優(yōu)化技術(shù)分析[J]. 通訊世界,2015(8):244-245.