亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于關(guān)系代數(shù)樹的查詢優(yōu)化方法實(shí)例分析

        2012-09-26 02:26:20馮凱平李曉良
        電子設(shè)計工程 2012年7期
        關(guān)鍵詞:數(shù)據(jù)庫優(yōu)化

        馮凱平,李曉良

        (1.四川烹飪高等專科學(xué)校信息技術(shù)系 四川 成都 610072;2.中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所 上海 200050)

        基于網(wǎng)絡(luò)的自適應(yīng)性測試是一種先進(jìn)的考試方式,在考試過程中,系統(tǒng)對題庫的訪問頻率很高,當(dāng)參試者較多時,對數(shù)據(jù)庫的訪問將更加頻繁,特別是隨著數(shù)據(jù)庫不斷增容,數(shù)據(jù)庫中的數(shù)據(jù)量迅猛增長,這將導(dǎo)致數(shù)據(jù)庫系統(tǒng)的性能下降,直接影響到系統(tǒng)的性能及應(yīng)用。因此,數(shù)據(jù)庫查詢速率的高低成為決定自適應(yīng)測試成功與否的重要因素之一。

        基于關(guān)系代數(shù)樹的查詢優(yōu)化方法,其基本思想是將選擇、連接等操作的運(yùn)算符在遵循關(guān)系代數(shù)等價變換規(guī)則的原則下,盡可能深地移到關(guān)系樹的底部[1]。對使用諸如SQL的某種語言書寫的查詢進(jìn)行語法分析,將查詢語句轉(zhuǎn)換成按某種有用方式表示查詢語句結(jié)構(gòu)的關(guān)系代數(shù)樹,把關(guān)系代數(shù)樹轉(zhuǎn)換成基于關(guān)系代數(shù)表達(dá)式的邏輯查詢計劃[2]。

        1 關(guān)系代數(shù)等價變換規(guī)則

        設(shè)R和S各表示一個關(guān)系、πL為投影(L為投影屬性)、σC為選擇 (c為選擇條件)、δ為消除重復(fù)、γL為聚集與分組(L為屬性)、∞C為連接(c為連接條件)、×為關(guān)系的積。

        1.1 涉及選擇的定律

        對涉及兩參數(shù)的選擇定律:

        1.2 涉及投影的定律

        1.3 有關(guān)連接和積的定律

        2 查詢計劃的改進(jìn)

        將關(guān)系代數(shù)操作符進(jìn)行組合,把一個操作符應(yīng)用到其他的一個或多個操作符之上形成一個表達(dá)式樹。這棵樹的葉節(jié)點(diǎn)是關(guān)系的名字,內(nèi)部節(jié)點(diǎn)被標(biāo)記為操作符,這個操作符應(yīng)用到它的子女代表的關(guān)系上。通過各個操作符的上移或下移,實(shí)現(xiàn)查詢優(yōu)化[1-4]。

        2.1 實(shí)例1

        查詢答對難度級別為2的某道題目的所有考生。

        假設(shè)有以下關(guān)系:

        TitleTable(題目號,答案,難度,區(qū)分度,猜度,類別,……)

        AnswerTable(考生姓名,題號,作答,bInit,……)

        對于關(guān)系A(chǔ)nswerTable,每答一道題產(chǎn)生一個元組。

        1)按關(guān)系的乘積查詢

        select考生姓名

        from TitleTable,AnswerTable

        圖1 由式(1)對應(yīng)的邏輯查詢計劃Fig.1 By type(1) the corresponding logic inquires the plan

        圖2 對圖1的一個改進(jìn)查詢計劃Fig.2 In figure 1 improvement inquires the plan

        式(1)所對應(yīng)的代數(shù)樹結(jié)構(gòu)如圖1所示。在這個邏輯查詢計劃中,首先在最底層實(shí)行兩個數(shù)據(jù)表的積,通過使用乘積操作符來連接FROM列表中的關(guān)系。下一步做一個表示W(wǎng)HERE子句的選擇操作,最后一步是投影到SELECT子句的列表上。

        為了實(shí)現(xiàn)相同的操作,并提高查詢效率,可以將選擇操作符σ盡量下移[1-3],其依據(jù)來自于關(guān)系表達(dá)式等價變換規(guī)則①和④。如圖2所示為一個改進(jìn)了的查詢計劃。在這個計劃中,由于提前對數(shù)據(jù)表TitleTable關(guān)于難度值進(jìn)行了篩選,減少了關(guān)系積的規(guī)模[3],使得查詢速率得以提高。

        經(jīng)過在 HP6500服務(wù)器、WINDOWSE 2000 SERVER操作系統(tǒng)平臺、SQL SERVER環(huán)境下測試,查詢速率提高大約65-75%。事實(shí)上,由于查詢優(yōu)化器的作用,其效率的提高遠(yuǎn)不止于此。

        其對應(yīng)的SQL語句如式(2)。

        select考生姓名

        from (select*from TitleTable where 難度=’2’)as a,Answer-Table as b

        2)按關(guān)系的連接查詢

        根據(jù)等價變換規(guī)則⑧,可將圖1的關(guān)系積轉(zhuǎn)換為圖3的關(guān)系連接,此關(guān)系代數(shù)樹實(shí)現(xiàn)相同的結(jié)果。在樹中,WHERE子句中的條件“題號=題目號”應(yīng)用到兩個關(guān)系的乘積上,成為等值連接,形成將一個選擇和一個乘積結(jié)合成一個連接的操作。通常,連接比乘積產(chǎn)生的元組要少,因此,連接的查詢效率要高于乘積的查詢效率。對應(yīng)的SQL語句如式(3)。

        select考生姓名

        from TitleTable as a inner join AnswerTable as b on b.題號=a.題目號

        圖3 基于連接的查詢計劃Fig.3 Based on the inquires connection plan

        經(jīng)測試,圖3的查詢速率比圖1高10%左右,這主要是關(guān)系TitleTable中關(guān)于題號沒有重復(fù)元組,否則圖3的查詢效率比圖1會更高。

        根據(jù)等價變換規(guī)則⑤將圖3轉(zhuǎn)換為圖4,圖4在圖3的基礎(chǔ)上得到了較大改進(jìn)。

        圖4 對圖3的改進(jìn)查詢計劃Fig.4 In figure 3 improvement inquires the plan

        2.2 實(shí)例2

        查找對題目猜度最高并且答對該題的考生

        1)帶子查詢的查詢計劃

        帶IN條件的代數(shù)樹結(jié)構(gòu)比較特殊,如圖5所示,上方的σ操作符屬于一個兩參數(shù)選擇,該結(jié)點(diǎn)之下有一個左子結(jié)點(diǎn),它表示要對其做選擇操作的關(guān)系A(chǔ)nswerTable;以及一個右結(jié)點(diǎn),它表示作用到關(guān)系A(chǔ)nswerTable的每個元組上的條件表達(dá)式。

        圖5和式(4)分別示出其關(guān)系代數(shù)樹和SQL表達(dá)式。

        select考生姓名

        from AnswerTable

        圖5 應(yīng)用IN條件Fig.5 Application condition IN

        2)去除子查詢的查詢計劃

        存在IN條件的代數(shù)表達(dá)式通常出現(xiàn)在子查詢中。

        在實(shí)際操作中盡量避免子查詢[5],否則,將子查詢應(yīng)用到關(guān)系中的每個元組時都要計算一篇子查詢,這無疑是一筆巨大的開銷。

        消除IN條件的基本方法如下:

        假設(shè)有一個兩參數(shù)選擇(圖5上方的σ),其中第一個參數(shù)為 R,第二個參數(shù)是形如t IN S的<Condition>,t是R的(某些)屬性組成的一個元組,按如下方式對樹作變換:

        a)用S的表達(dá)式樹替換<Condition>。

        b)用一個單參數(shù)選擇σC替換兩參數(shù)選擇 (圖6上方的σ),其中C是元組t的每個分量與關(guān)系S中相應(yīng)的屬性取等值的條件。

        圖6 去除IN條件Fig.6 Remove IN conditions

        c)給一個參數(shù),它是R與S的積。

        根據(jù)以上規(guī)則,對圖5進(jìn)行相應(yīng)變換,得到圖6邏輯查詢計劃。表達(dá)式如式(5)。

        select考生姓名

        from AnswerTable as a,(select題目號, 答案 from Title Table where猜度=”5”)as b

        經(jīng)測試,按圖6建立的查詢計劃比圖5查詢速率提高大約70%。

        為了進(jìn)一步提高查詢速率,對圖6的乘積操作,可按圖1到圖3的變換規(guī)則變換成連接操作。

        2.3 實(shí)例3

        為了確定題目的有效度,需要查找作答了某道題所有考生的平均特質(zhì)水平與該試題難度級別接近的題目。

        數(shù)據(jù)表如下:

        AnswerTable(考生姓名,題號,作答,bInit,……)

        StudentTable(姓名,地址,性別,特質(zhì)水平,……)

        將平均特質(zhì)水平與難度參數(shù)值之差的絕對值小于0.3作為確認(rèn)標(biāo)準(zhǔn),其SQL表達(dá)式如式(5)。

        在式(5)所對應(yīng)的關(guān)系代數(shù)樹中,如圖7所示,把子查詢的WHERE子句分解成兩個,并使用該子句的一部分把關(guān)系的積轉(zhuǎn)換成等值連接。在這棵樹的結(jié)點(diǎn)上使用了別名s1、s2、d。代數(shù)表達(dá)式在代數(shù)樹的頂部結(jié)束,投影到所期望的屬性上并消除重復(fù)。

        圖7 把式(5)轉(zhuǎn)換成邏輯查詢計劃Fig.7 Mules(5) convert logic inquires the plan

        圖7是可以改進(jìn)的,條件是:

        1)δ在樹的頂部;

        2)AnswerTable s1中的“考生姓名”不出現(xiàn)在投影 πs1.題號,s1.bInit中;

        3)AnswerTable s1與它的連接對象(圖7中的右下部分)之間的連接能夠?qū)?AnswerTable s1中的“題號”、“bInit”屬性與AnswerTable s2中的屬性取等值。

        由于這些條件均成立,則可以分別用 “s2.題號”、“s2.bInit”替換“s1.題號”、“s1.bInit”。 因此,圖 7 中的上方的一個連接符可以去除。改進(jìn)后的邏輯查詢計劃如圖8所示。

        圖8 圖7的簡化Fig.8 Figure 7 simplification

        2.4 查詢優(yōu)化原則小結(jié)

        1)選擇σ應(yīng)盡可能下移到表達(dá)式樹中的下方。如果一個選擇條件是多個條件用and連接,則可以把該條件分解并分別將每個條件下移。

        2)投影π也可被下移到樹中的下方,可加入新的投影。

        3)消除重復(fù)δ有時可以不用,或者移到更方便的位置。

        4)某些σ可以與其下方的積相結(jié)合以便把操作轉(zhuǎn)換成等值連接。

        3 操作代價的估計

        圖3對兩個關(guān)系TitleTable、AnswerTable分別進(jìn)行投影、選擇和連接。投影的代價是可以精確估計的,而選擇代價和連接代價需要通過“統(tǒng)計量收集”過程來估計[1-6,8]。

        3.1 投影大小的估計

        對于關(guān)系 AnswerTable(考生姓名,題號,作答,bInit),并在以下簡稱為An。假設(shè)4個屬性的長度分別為 6、4、1、1個字節(jié),設(shè)每個元組的頭需要12字節(jié),如此,關(guān)系A(chǔ)n的每一個元組占24字節(jié)。設(shè)塊為2 048字節(jié)長,其中塊頭占24字節(jié)。因此,每塊可存放168個元組。假設(shè)總的元組數(shù)為10 000,即T(An)=10 000,需要的塊數(shù)為 60,即 B(An)=60。

        現(xiàn)在考慮投影S=π姓名(An),關(guān)系S的元組長度僅為6字節(jié)長,而T(S)仍為10 000。但是,現(xiàn)在卻可以在一個塊中放入 337 個元組,故 B(S)=30。

        從而該投影縮減了關(guān)系約1倍,顯著減少了系統(tǒng)的I/O操作頻率,加快了DBMS掃描器掃描速率[3]。

        3.2 連接大小的估計

        對于關(guān)系TitleTable(題目號,答案),并在以下簡稱為Ti,假設(shè)共計8 000個元組。

        用V(Ti,題目號)表示Ti中“題目號”屬性不同值的元組種類數(shù)目。由于Ti關(guān)于題目號無重復(fù)元組,所以V(Ti,題目號)=8 000。然而,對于An關(guān)于題號是有重復(fù)的,其重復(fù)度需要根據(jù)參試人數(shù)、試卷的題量、考生的特質(zhì)水平級別數(shù)來確定。

        作以下假定:

        1)根據(jù)全??稍嚈C(jī)器臺數(shù),假設(shè)一次參試人數(shù)為500人。

        2)在自適應(yīng)性測試中,每位參試者的題量是不等的,假設(shè)平均值為20道題。

        3)每位參試者的特質(zhì)水平不同,簡單地分為5級。

        一次考試系統(tǒng)總抽題量為T(An)=20×500=10 000。 考慮到每個考生特質(zhì)水平的不同,所答題目的級別也不同,同一題目在不同特質(zhì)水平考生中的分布系數(shù)大約為4/5=0.8,因此,每道題被抽取的概率大約為20×0.8/8 000=0.002,出現(xiàn)的次數(shù)為 0.002×10 000=20。 V(An, 題號)被確定為

        最終對連接后元組數(shù)T(An∞Ti)的估計為

        T(An∞Ti)=T(An)T(Ti)/Max(V(An, 題號),V(Ti, 題目號))[1]=10 000×8 000/Max(500,8 000)=10 000

        根據(jù)題目元組大小、磁盤頁面大小、每頁元組行數(shù),DBMS掃描器在連接An、Ti的過程中至少全表掃描磁盤大約800 萬次[3-9,10]。

        3.3 選擇大小的估計

        圖3所涉及的選擇是邏輯等值比較,其大小相對容易估算。

        假設(shè)題庫中每道題目均僅有A、B、C、D 4種答案,并且4種答案是均勻分布的。因此,在發(fā)生了連接的關(guān)系A(chǔ)n∞Ti中,邏輯表達(dá)式“作答=答案”就只有4種情形,按3/4的答對率計算,令x=4/3。另假設(shè)題目的難度級別有5種,令y=5。

        已知 T (An∞Ti)=10 000。 對于 S=σ 作答=答案 and 難度=’2’(An∞Ti), 通過下式求得經(jīng)選擇后新關(guān)系 S的元組數(shù)目:

        分別將 x、y 代入(6)式,得 T(S)=10 000/x/y=1 500。

        3.4 優(yōu)化后的代價估計

        采用類似的方法對圖4進(jìn)行大小估計。但是,由于優(yōu)化后,關(guān)系Ti與An的共同屬性值題目號違反了“值集的保持[1]”的假設(shè),其估計值不太準(zhǔn)確??砂匆韵路椒ù笾鹿烙嫞?/p>

        在圖 4查詢計劃中,對 Ti先進(jìn)行選擇 σ難度=’2’操作,假設(shè)難度值按均勻分布考慮,得到 T(Tiσ)=8 000/5=1 600。

        此時再將其與關(guān)系A(chǔ)n按題號連接,DBMS掃描器僅需掃描160萬次即可,較大幅度地實(shí)現(xiàn)了優(yōu)化。再向上進(jìn)行σ作答=答案操作,仍能得到 T(S)=1 500。

        4 結(jié)束語

        SQL查詢優(yōu)化的實(shí)質(zhì)就是在結(jié)果正確的前提下,用優(yōu)化器可以識別的語句,盡量減少表掃描的I/O次數(shù),進(jìn)而減少表搜索。在數(shù)據(jù)庫的管理、開發(fā)和應(yīng)用過程中,SQL查詢語句性能的優(yōu)劣直接影響整個信息系統(tǒng)的效率,特別是大型數(shù)據(jù)庫優(yōu)化過程更為重要,其效率高的查詢語句和效率低的查詢語句速度相差可以達(dá)到幾倍甚至上百倍。文中以應(yīng)用實(shí)例為基礎(chǔ),以關(guān)系代數(shù)樹結(jié)構(gòu)為主線,結(jié)合數(shù)據(jù)庫理論對關(guān)系數(shù)據(jù)庫的查詢優(yōu)化機(jī)制,分析并實(shí)現(xiàn)對SQL語句的優(yōu)化,進(jìn)而保證數(shù)據(jù)庫高效可靠地運(yùn)行。

        [1]Molina H G,Ullman J D,Widom J.Database system implementation[M].Palo Alto, California:Stanford University,2007.

        [2]司訓(xùn)練,徐文靜.代數(shù)樹架構(gòu)下高價謂詞查詢優(yōu)化機(jī)制的算法設(shè)計[J].情報雜志,2007(1):61-63.

        SI Xun-lian,XU Wen-jing.Algorithm design of expensive predicate query optimization mechanism based on algebra tree framework[J].Intelligence magazine,2007(1):61-63.

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

        WANG Zheng,WANG Ya-ping.Research on relational algebra and SQL query optimization[J].Electronic Design Engineering,2009,17(8):110-112.

        [4]徐麗萍,金雄兵.一個并行查詢優(yōu)化器的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與科學(xué).2007,29(2):104-106.

        XU Li-ping,JIN Xiong-bing.Design and realizat ion of a parallel query opt im izer[J].Computer Engineering&Sciencf,2007,29(2):104-106.

        [5]孫海東,張楊.一種分布式數(shù)據(jù)庫多屬性劃分查詢優(yōu)化算法[J].微計算機(jī)應(yīng)用,2010,31(3):47-49.

        SUN Hai-dong,ZHANG Yang.A distributed database query optimization algorithm for multi-attribute classification[J].Microcomputer Applicati NS,2010,31(3):47-49.

        [6]曲衛(wèi)民,孫樂.XML數(shù)據(jù)查詢中值匹配查詢代價估計算法[J].軟件學(xué)報,2005,16(4):561-569.

        QU Wei-min,SUN Le.A result size estimation algorithm for value predication in XML query[J].Journal of Software,2005,16(4):561-569.

        [7]吳勝利,王能斌.面向?qū)ο髷?shù)據(jù)庫中查詢代價的估算[J].計算機(jī)研究與發(fā)展,1998,35(1):69-73.

        WU Sheng-li,WANG Neng-bin.Estiation of query cost in object-oriented database systems[J].Computer Research&Development,1998,35(1):69-73.

        [8]伍軍云,徐少平.一種新的關(guān)系數(shù)據(jù)庫查詢優(yōu)化方法[J].計算機(jī)與現(xiàn)代化,2006(7):33-35.

        WU Jun-yun,XU Shao-ping.A new query processing optimization algorithm based on statistic[J].Computer&Modernzation,2006(7):33-35.

        [9]佚名.數(shù)據(jù)庫優(yōu)化查詢計劃方法 [EB/OL].[2010-08-26].http://wenku.baidu.com/view.

        [10]樊新華.關(guān)系數(shù)據(jù)庫的查詢優(yōu)化技術(shù)[J].計算機(jī)與數(shù)字工程,2009,37(12):188-190.

        FAN Xin-hua.Optimizati on technology for queries in relational database[J].Computer&Digital Engineering,2009,37(12):188-190.

        [11]劉云生,彭楚冀.一種實(shí)時數(shù)據(jù)庫查詢執(zhí)行方法的設(shè)計[J].計算機(jī)應(yīng)用,2005,25(2):279-282.

        LIU Yun-sheng,PENG Chu-ji.Design of a query execution method for real-time database[J].Computer Applications,2005,25(2):279-282.

        猜你喜歡
        數(shù)據(jù)庫優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
        民用建筑防煙排煙設(shè)計優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        男人的天堂一区二av| 亚洲国产福利成人一区二区| 手机在线免费看av网站| 亚洲国产综合在线亚洲区亚洲av | 国产啪精品视频网给免丝袜| 亚洲午夜av久久久精品影院色戒 | 久久精品国产亚洲综合色| 国产日韩欧美视频成人| 9l国产自产一区二区三区| 午夜男女靠比视频免费| 女人被狂躁的高潮免费视频| 亚洲精品无amm毛片| 亚洲永久无码动态图| 国产亚洲欧洲三级片A级| 女同亚洲一区二区三区精品久久| 丝袜美腿一区二区国产| 在线亚洲+欧美+日本专区| 综合无码综合网站| 国产亚洲精品一区二区在线播放| 插入日本少妇一区二区三区| 欧洲vat一区二区三区| 午夜性刺激免费视频| 丰满少妇一区二区三区专区| av色一区二区三区精品| 99国产精品久久久蜜芽| 久久AV中文一区二区三区 | 天天影视色香欲综合久久| 无码伊人久久大香线蕉| 性色av色香蕉一区二区蜜桃| 任我爽精品视频在线播放| 四虎永久免费影院在线| 日本在线播放不卡免费一区二区| 国产丝袜美腿精品91在线看| 日本熟妇色xxxxx欧美老妇| 国产清品夜色一区二区三区不卡 | 男人的天堂av网站一区二区| 蜜桃国产精品视频网站| 亚洲亚洲人成综合丝袜图片| 乱码一二三入区口| 久久久9色精品国产一区二区三区| 中文字幕精品人妻在线|