• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      關(guān)系數(shù)據(jù)庫查詢優(yōu)化策略與研究

      2016-11-24 16:15:27饒輝科
      電腦知識與技術(shù) 2016年26期

      饒輝科

      摘要:數(shù)據(jù)查詢是數(shù)據(jù)庫技術(shù)中非常重要的組成部分,查詢效率的優(yōu)劣直接影響數(shù)據(jù)庫的性能。如何高效地進(jìn)行數(shù)據(jù)查詢,一直是數(shù)據(jù)庫理論研究的重要方向。該文從查詢優(yōu)化的必要性,查詢優(yōu)化的方法等方面進(jìn)行了討論。

      關(guān)鍵詞:查詢優(yōu)化;代數(shù)優(yōu)化;查詢樹

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)26-0008-02

      1 引言

      關(guān)系數(shù)據(jù)庫是當(dāng)今應(yīng)用最廣泛的數(shù)據(jù)庫系統(tǒng)。關(guān)系數(shù)據(jù)庫支持關(guān)系數(shù)據(jù)模型。關(guān)系數(shù)據(jù)結(jié)構(gòu)非常單一,現(xiàn)實(shí)世界中的實(shí)體及實(shí)體之間的聯(lián)系都是用關(guān)系來表示,在用戶看來,關(guān)系數(shù)據(jù)結(jié)構(gòu)就是二維表。常用的關(guān)系操作包括查詢操作和插入、刪除、修改操作兩大部分,其中查詢操作的表達(dá)能力最重要。數(shù)據(jù)查詢是數(shù)據(jù)庫應(yīng)用中非常重要的組成部分,數(shù)據(jù)查詢是否具備較高的執(zhí)行效率和反應(yīng)速度受到數(shù)據(jù)庫設(shè)計(jì)者和用戶的極大關(guān)注。

      2 不同查詢方案代價(jià)對比

      關(guān)系模型中的查詢語言早期通常是用代數(shù)方法或邏輯方法來表示,分別稱為關(guān)系代數(shù)和關(guān)系演算,隨后出現(xiàn)一種介于關(guān)系代數(shù)和關(guān)系演算的語言稱為結(jié)構(gòu)化查詢語言,簡稱SQL。SQL語言作為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言向用戶提供了易于掌握、高度非過程化得查詢語言。大多數(shù)商用數(shù)據(jù)庫都支持SQL語言,用戶只需指明“干什么?”不需指出“怎么干?!睂ν粋€查詢要求有不同的查詢解決方案,查詢優(yōu)化就是盡量在不同的解決方案中找到效率高、代價(jià)小的方案。

      為了提升數(shù)據(jù)庫系統(tǒng)性能對數(shù)據(jù)查詢進(jìn)行優(yōu)化成了必須解決的問題,查詢優(yōu)化技術(shù)的發(fā)展與應(yīng)用,也助推了數(shù)據(jù)庫技術(shù)的推廣與普及。

      下面我們通過一個實(shí)例對比不同查詢方案所花費(fèi)的代價(jià)。

      商品銷售管理數(shù)據(jù)庫

      銷售點(diǎn)信息表(銷售點(diǎn)編號,城市、地址,聯(lián)系電話,開設(shè)時間)

      產(chǎn)品信息表(產(chǎn)品編號,產(chǎn)品名,類型,規(guī)格,生產(chǎn)廠家,進(jìn)貨價(jià)格)

      銷售情況表(銷售點(diǎn)編號,產(chǎn)品編號,銷售量,銷售單價(jià))

      求銷售產(chǎn)品編號為JD051這種產(chǎn)品的銷售點(diǎn)信息?

      用SQL語言表達(dá)該查詢:

      Select 銷售點(diǎn)信息表.*

      From 銷售點(diǎn)信息表 , 銷售情況表

      Where 銷售點(diǎn)信息表.銷售點(diǎn)編號=銷售情況表.銷售點(diǎn)編號 and 產(chǎn)品編號=JD051

      SQL語言是高度的非過程化語言,同一個查詢要求可以有不同的執(zhí)行方式。下面針對上述查詢要求運(yùn)用關(guān)系代數(shù)表達(dá)式來表示不同的執(zhí)行方式。

      方案1

      Π銷售點(diǎn)信息表.*(σ銷售點(diǎn)信息表.銷售點(diǎn)編號=銷售情況表.銷售點(diǎn)編號∧銷售情況表.產(chǎn)品編號=JD051(銷售點(diǎn)信息表×銷售情況表))

      第一種方式需要占用內(nèi)存空間保留廣義笛卡爾積的中間結(jié)果,讀取數(shù)據(jù)量過多及耗時較長;

      方案2

      Π銷售點(diǎn)信息表.*(σ產(chǎn)品編號=JD051(銷售點(diǎn)信息表∞銷售情況表))

      第二種方案相比第一種方式減少了中間結(jié)果,使用自然連接相比笛卡爾積大大減少了中間結(jié)果;

      方案3

      Π銷售點(diǎn)編號(σ產(chǎn)品編號=JD051 (銷售情況表))∞銷售點(diǎn)信息表

      第三種方式減少了數(shù)據(jù)讀取量,中間結(jié)果相比第二種情況更少??偟牟樵儠r間最短、查詢代價(jià)最少。

      以上三種表達(dá)式雖然等價(jià),但其執(zhí)行的查詢策略不同,數(shù)據(jù)規(guī)模越大,查詢所花費(fèi)的代價(jià)差別就越大。通過三種不同查詢方式的對比,說明查詢優(yōu)化的必要性,選擇合適的查詢策略將大大減少查詢時間、降低查詢代價(jià),因此查詢優(yōu)化問題一直是數(shù)據(jù)庫研究的重點(diǎn)。

      3 關(guān)系數(shù)據(jù)庫查詢處理過程

      當(dāng)用戶發(fā)出查詢請求,要采用不同的處理步驟對原始查詢進(jìn)行轉(zhuǎn)換,這些轉(zhuǎn)換工作必須在系統(tǒng)處理查詢請求和返回查詢結(jié)果前完成。關(guān)系數(shù)據(jù)庫查詢處理過程如圖1所示。

      圖1

      主要步驟:語法分析與翻譯處理,查詢優(yōu)化處理,執(zhí)行。

      4 查詢優(yōu)化技術(shù)分類

      查詢優(yōu)化技術(shù)一般分為代數(shù)優(yōu)化和非代數(shù)優(yōu)化(物理結(jié)構(gòu)優(yōu)化)。

      1)代數(shù)優(yōu)化,通過對查詢語句進(jìn)行變換,改變基本操作的次序,使查詢語句執(zhí)行起來更有效,這種查詢優(yōu)化僅涉及查詢語句本身,而不涉及實(shí)際存取路徑,稱為獨(dú)立于存取路徑的優(yōu)化,或代數(shù)優(yōu)化。

      查詢是由高級查詢語言表示的對數(shù)據(jù)庫的一個或一組操作的集合,通常由投影、選擇、連接、笛卡爾積等操作符組成。通過語法分析功能分析查詢語句的正確性、完整性、有效性,并將其轉(zhuǎn)換為等價(jià)關(guān)系代數(shù)查詢樹,如圖2。

      根據(jù)關(guān)系代數(shù)等價(jià)變換規(guī)則,查詢樹可以按以下方法進(jìn)行變換:

      方法1:下移選擇和投影運(yùn)算,以減少中間結(jié)果的元組數(shù)和參與運(yùn)算的關(guān)系的規(guī)模;

      方法2:將某些選擇運(yùn)算與笛卡爾積運(yùn)算相結(jié)合;

      方法3:同時執(zhí)行同一個關(guān)系上的選擇、投影運(yùn)算,減少對關(guān)系的掃描次數(shù);

      方法4:將連接運(yùn)算與投影運(yùn)算結(jié)合起來執(zhí)行。

      圖2可變換為圖3。

      對比圖2和圖3選擇運(yùn)算和投影運(yùn)算優(yōu)先執(zhí)行,減少了查詢中間結(jié)果的元組數(shù),大大降低了參與連接運(yùn)算的關(guān)系規(guī)模。

      在制定具體的查詢策略時應(yīng)盡量減少對數(shù)據(jù)表的訪問,減少對磁盤的訪問次數(shù),訪問磁盤所需的時間大大長于對內(nèi)存的訪問時間,減少對磁盤的訪問次數(shù)將大大降低系統(tǒng)的響應(yīng)時間。選擇運(yùn)算盡可能提前做,往往可以使執(zhí)行時間降低幾個數(shù)量級,通過選擇運(yùn)算減少中間結(jié)果。在執(zhí)行連接操作前,對關(guān)系進(jìn)行適當(dāng)?shù)念A(yù)處理,在連接的字段上建立索引以及對關(guān)系進(jìn)行排序,加快查詢速度。

      關(guān)系代數(shù)優(yōu)化的一般步驟:[3]

      (a)把查詢轉(zhuǎn)換成語法樹;(b)優(yōu)化語法樹;(c)選擇低層次的存取路徑;(d)選擇代價(jià)較小的查詢方案。

      2)非代數(shù)優(yōu)化,也稱物理結(jié)構(gòu)優(yōu)化。數(shù)據(jù)庫物理結(jié)構(gòu)是整個數(shù)據(jù)庫存儲的基礎(chǔ),物理結(jié)構(gòu)設(shè)計(jì)是在邏輯結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上完成的,應(yīng)確保數(shù)據(jù)庫存儲和訪問或操作數(shù)據(jù)表具有較高的執(zhí)行效率。物理結(jié)構(gòu)優(yōu)化是指為數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)推薦合適的物理存儲位置或存儲結(jié)構(gòu),以及為查詢推薦合適的存取路徑,進(jìn)而提升系統(tǒng)的整體性能。

      5 小結(jié)

      查詢優(yōu)化技術(shù)是數(shù)據(jù)庫中一項(xiàng)重要的技術(shù)。對于的查詢要求,我們應(yīng)該根據(jù)數(shù)據(jù)規(guī)模大小,具體的物理存儲結(jié)構(gòu)等因素進(jìn)行分析,選擇合適的查詢策略。具體的SQL查詢語句應(yīng)根據(jù)代數(shù)優(yōu)化的相關(guān)原則進(jìn)行變換,提高查詢效率。查詢優(yōu)化目的是為了提升系統(tǒng)的性能,如果進(jìn)行優(yōu)化本身需要花費(fèi)的代價(jià)過大,反而會降低系統(tǒng)的性能。所以只有兼顧了查詢效率、控制系統(tǒng)開銷、保障數(shù)據(jù)庫安全等諸多方面才能真正地優(yōu)化系統(tǒng)的性能。

      參考文獻(xiàn):

      [1] 馮衛(wèi)兵.關(guān)系數(shù)據(jù)庫的查詢優(yōu)化[J].現(xiàn)代計(jì)算機(jī),2010(1).

      [2] 王能斌.數(shù)據(jù)庫系統(tǒng)原理[M].北京:電子工業(yè)出版社,2001.

      [3] 薩師煊,王珊. 數(shù)據(jù)庫系統(tǒng)概論[M].3版.北京:高等教育出版社,2000.

      [4] 谷震離.關(guān)系數(shù)據(jù)庫查詢方法研究[J].微計(jì)算機(jī)信息,2006.

      [5] 崔躍生,張勇,曾春,等.數(shù)據(jù)庫物理結(jié)構(gòu)優(yōu)化技術(shù)[J].軟件學(xué)報(bào),2013,24(4).

      [6] 梁志宏,勒延安,周華.等價(jià)關(guān)系代數(shù)查詢優(yōu)化方法的研究[J].山西師范大學(xué)學(xué)報(bào):自然科學(xué)版,2004.

      [7] 王崢,王亞平.關(guān)系代數(shù)與SQL查詢優(yōu)化的研究[J].電子設(shè)計(jì)工程,2009(8).

      三门县| 轮台县| 云阳县| 凤庆县| 轮台县| 北票市| 老河口市| 越西县| 承德县| 乌拉特后旗| 工布江达县| 遂平县| 鹤峰县| 临洮县| 措勤县| 辽中县| 宜春市| 图片| 全南县| 承德市| 合阳县| 阿坝| 岳西县| 黑水县| 扶风县| 温州市| 琼中| 甘德县| 壤塘县| 井陉县| 白玉县| 全椒县| 蒙自县| 安乡县| 海门市| 和顺县| 咸宁市| 西盟| 会理县| 广平县| 广德县|