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