999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于關系代數樹的查詢優化方法實例分析

2012-09-26 02:26:20馮凱平李曉良
電子設計工程 2012年7期
關鍵詞:數據庫優化

馮凱平,李曉良

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

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

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

1 關系代數等價變換規則

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

1.1 涉及選擇的定律

對涉及兩參數的選擇定律:

1.2 涉及投影的定律

1.3 有關連接和積的定律

2 查詢計劃的改進

將關系代數操作符進行組合,把一個操作符應用到其他的一個或多個操作符之上形成一個表達式樹。這棵樹的葉節點是關系的名字,內部節點被標記為操作符,這個操作符應用到它的子女代表的關系上。通過各個操作符的上移或下移,實現查詢優化[1-4]。

2.1 實例1

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

假設有以下關系:

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

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

對于關系AnswerTable,每答一道題產生一個元組。

1)按關系的乘積查詢

select考生姓名

from TitleTable,AnswerTable

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

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

式(1)所對應的代數樹結構如圖1所示。在這個邏輯查詢計劃中,首先在最底層實行兩個數據表的積,通過使用乘積操作符來連接FROM列表中的關系。下一步做一個表示WHERE子句的選擇操作,最后一步是投影到SELECT子句的列表上。

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

經過在 HP6500服務器、WINDOWSE 2000 SERVER操作系統平臺、SQL SERVER環境下測試,查詢速率提高大約65-75%。事實上,由于查詢優化器的作用,其效率的提高遠不止于此。

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

select考生姓名

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

2)按關系的連接查詢

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

select考生姓名

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

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

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

根據等價變換規則⑤將圖3轉換為圖4,圖4在圖3的基礎上得到了較大改進。

圖4 對圖3的改進查詢計劃Fig.4 In figure 3 improvement inquires the plan

2.2 實例2

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

1)帶子查詢的查詢計劃

帶IN條件的代數樹結構比較特殊,如圖5所示,上方的σ操作符屬于一個兩參數選擇,該結點之下有一個左子結點,它表示要對其做選擇操作的關系AnswerTable;以及一個右結點,它表示作用到關系AnswerTable的每個元組上的條件表達式。

圖5和式(4)分別示出其關系代數樹和SQL表達式。

select考生姓名

from AnswerTable

圖5 應用IN條件Fig.5 Application condition IN

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

存在IN條件的代數表達式通常出現在子查詢中。

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

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

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

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

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

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

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

根據以上規則,對圖5進行相應變換,得到圖6邏輯查詢計劃。表達式如式(5)。

select考生姓名

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

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

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

2.3 實例3

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

數據表如下:

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

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

將平均特質水平與難度參數值之差的絕對值小于0.3作為確認標準,其SQL表達式如式(5)。

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

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

圖7是可以改進的,條件是:

1)δ在樹的頂部;

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

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

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

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

2.4 查詢優化原則小結

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

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

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

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

3 操作代價的估計

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

3.1 投影大小的估計

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

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

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

3.2 連接大小的估計

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

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

作以下假定:

1)根據全校可試機器臺數,假設一次參試人數為500人。

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

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

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

最終對連接后元組數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

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

3.3 選擇大小的估計

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

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

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

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

3.4 優化后的代價估計

采用類似的方法對圖4進行大小估計。但是,由于優化后,關系Ti與An的共同屬性值題目號違反了“值集的保持[1]”的假設,其估計值不太準確。可按以下方法大致估計:

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

此時再將其與關系An按題號連接,DBMS掃描器僅需掃描160萬次即可,較大幅度地實現了優化。再向上進行σ作答=答案操作,仍能得到 T(S)=1 500。

4 結束語

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

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

[2]司訓練,徐文靜.代數樹架構下高價謂詞查詢優化機制的算法設計[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]王崢,王亞平.關系代數與SQL查詢優化的研究[J].電子設計工程,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]徐麗萍,金雄兵.一個并行查詢優化器的設計與實現[J].計算機工程與科學.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]孫海東,張楊.一種分布式數據庫多屬性劃分查詢優化算法[J].微計算機應用,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]曲衛民,孫樂.XML數據查詢中值匹配查詢代價估計算法[J].軟件學報,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]吳勝利,王能斌.面向對象數據庫中查詢代價的估算[J].計算機研究與發展,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]伍軍云,徐少平.一種新的關系數據庫查詢優化方法[J].計算機與現代化,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]佚名.數據庫優化查詢計劃方法 [EB/OL].[2010-08-26].http://wenku.baidu.com/view.

[10]樊新華.關系數據庫的查詢優化技術[J].計算機與數字工程,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]劉云生,彭楚冀.一種實時數據庫查詢執行方法的設計[J].計算機應用,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.

猜你喜歡
數據庫優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 久久精品中文字幕少妇| 亚洲国产欧洲精品路线久久| 久久久黄色片| 国产精品尤物在线| 六月婷婷精品视频在线观看 | 亚洲人人视频| 亚洲美女久久| 国产精品亚洲精品爽爽| 日韩精品久久无码中文字幕色欲| 国产麻豆精品久久一二三| www.91在线播放| 999国内精品视频免费| 精品国产免费观看| 婷婷色狠狠干| 国产手机在线ΑⅤ片无码观看| 国产成年女人特黄特色毛片免| 国产女人18水真多毛片18精品| 亚洲视频a| 婷婷亚洲视频| 亚洲Av激情网五月天| 丁香六月综合网| 夜色爽爽影院18禁妓女影院| 欧洲欧美人成免费全部视频 | 国产91导航| 日韩成人午夜| 欧美乱妇高清无乱码免费| 视频二区中文无码| 亚洲无码91视频| 亚洲欧美综合另类图片小说区| 国产高潮流白浆视频| 亚洲网综合| 亚洲国产高清精品线久久| 无码电影在线观看| 精品无码国产自产野外拍在线| 精品亚洲国产成人AV| 亚洲国产日韩一区| 亚洲天堂久久| 一级在线毛片| 亚洲女同一区二区| 国产精品亚洲专区一区| 久操中文在线| 欧美日韩午夜| 日韩精品成人网页视频在线| 狠狠躁天天躁夜夜躁婷婷| 动漫精品中文字幕无码| 狠狠做深爱婷婷久久一区| 永久天堂网Av| 国产黄网永久免费| 99久久国产精品无码| 欧美亚洲一区二区三区在线| 国产精品偷伦在线观看| 国产精品视屏| 亚洲欧洲一区二区三区| 欧美精品v欧洲精品| 亚洲不卡av中文在线| 国产99久久亚洲综合精品西瓜tv| 一级全黄毛片| 2022国产无码在线| 日韩无码精品人妻| 色国产视频| 久久久噜噜噜| 午夜国产不卡在线观看视频| 国产凹凸视频在线观看| 99久久人妻精品免费二区| 亚洲精品国产自在现线最新| 免费无码AV片在线观看国产| 视频在线观看一区二区| 亚洲人成色在线观看| 一级香蕉视频在线观看| 日本一区二区三区精品视频| 亚洲欧美综合精品久久成人网| 真人免费一级毛片一区二区| 中文字幕免费视频| 久久美女精品国产精品亚洲| 亚洲va欧美va国产综合下载| 亚洲第七页| 久青草国产高清在线视频| 无码精油按摩潮喷在线播放| 亚洲视频a| 伊人久久大香线蕉影院| 男人天堂伊人网| 亚洲精品图区|