《查詢處理和優(yōu)化》ppt課件

《查詢處理和優(yōu)化》ppt課件

ID:26985433

大?。?00.01 KB

頁數(shù):40頁

時間:2018-11-30

《查詢處理和優(yōu)化》ppt課件_第1頁
《查詢處理和優(yōu)化》ppt課件_第2頁
《查詢處理和優(yōu)化》ppt課件_第3頁
《查詢處理和優(yōu)化》ppt課件_第4頁
《查詢處理和優(yōu)化》ppt課件_第5頁
資源描述:

《《查詢處理和優(yōu)化》ppt課件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、第5章查詢處理和優(yōu)化5.1引言5.2代數(shù)優(yōu)化5.3依賴于存取路徑的規(guī)則優(yōu)化5.4代價估算優(yōu)化*5.1引言概述查詢是數(shù)據(jù)庫系統(tǒng)中最基本、最常見和最復(fù)雜的操作。對數(shù)據(jù)庫的查詢一般都是以查詢語言(如SQL)表示。從查詢請求出發(fā),直到得到查詢結(jié)果,這一過程稱為查詢處理。關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢語言一般是“非過程語言”,它減輕了用戶選擇存取路徑的負(fù)擔(dān)。用戶只要提出‘干什么’,不必指出‘怎么干’。即用戶不必關(guān)心查詢的具體執(zhí)行過程,而由DBMS確定合理的、有效的執(zhí)行策略。DBMS在這方面的作用稱為查詢優(yōu)化。對于使用非過程

2、查詢語言的RDBMS,查詢優(yōu)化是查詢處理中非常重要的一環(huán),對系統(tǒng)性能會產(chǎn)生很大的影響。5.1引言2.查詢處理的一般過程先做詞法和語法分析,把查詢語句變成語法樹或語法圖;然后進(jìn)行查詢優(yōu)化,形成執(zhí)行計劃,生成可執(zhí)行代碼,交系統(tǒng)執(zhí)行。具體處理過程也可分為解釋和編譯兩種實(shí)現(xiàn)方式。解釋方式如圖6-1所示。編譯方式如圖6-2所示。對于常用的例行事務(wù),編譯方式可以顯著地提高數(shù)據(jù)庫性能。對于那些不怎么重復(fù)使用的偶然查詢,解釋也不失為一種簡單、實(shí)用的實(shí)現(xiàn)方式。這兩種實(shí)現(xiàn)方式在現(xiàn)有的商用DBMS中都有應(yīng)用。5.1引言3.例

3、子首先看一個簡單的例子,說明為什么要進(jìn)行查詢優(yōu)化。例:求選修了2號課程的學(xué)生姓名。用SQL語言表達(dá):SELECTSnameFROMS,SC WHERES.SNO=SC.SNOANDSC.CNO='2';假定學(xué)生-課程數(shù)據(jù)庫中有l(wèi)000個學(xué)生記錄,l0000個選課記錄,其中選修2號課程的選課記錄為50個。系統(tǒng)可以用多種等價的關(guān)系代數(shù)表達(dá)式來完成這一查詢1.Q1=πSname(σS.sno=sc.sno∧sc.cno='2'(S×SC)) 2.Q2=πSname(σsc.cno='2'(S

4、><

5、SC))

6、3.Q3=πSname(S

7、><

8、σsc.cno='2'(SC))我們將看到由于查詢執(zhí)行的策略不同,查詢時間相差很大。5.1引言查詢執(zhí)行策略Q1代價分析計算廣義笛卡爾積的代價把S和SC的每個元組連接起來。一般連接的做法是:在內(nèi)存中盡可能多地裝人某個表(如Student表)的若干塊元組,留出一塊存放另一個表(如SC表)的元組。然后把SC中的每個元組和S中每個元組連接,連接后的元組裝滿一塊后就寫到中間文件上,再從SC中讀入一塊和內(nèi)存中的S元組連接,直到SC表處理完。這時再一次讀入若干塊S元組,讀入一塊SC元

9、組,重復(fù)上述處理過程,直到把S表處理完。設(shè)一個塊能裝l0個Student元組或l00個SC元組,在內(nèi)存中存放5塊Student元組和l塊SC元組,則讀取總塊數(shù)為:1000/10+1000/(10×5)×(10000/100)=2100塊其中讀Student表l00塊。讀SC表20遍,每遍l00塊。若每秒讀寫20塊,則總計要花105(秒)。連接后的元組數(shù)為1000×10000。設(shè)每塊能裝l0個元組,則寫出這些塊要花1000000/20=50000(秒)。5.1引言查詢執(zhí)行策略Q1代價分析(續(xù))選擇操作的代

10、價依次讀入連接后的元組,按照選擇條件選取滿足要求的的記錄。假定內(nèi)存處理時間忽略。這一步讀取中間文件花費(fèi)的時間(同寫中間文件一樣)需50000秒。滿足條件的元組假設(shè)僅50個,均可放在內(nèi)存。3)投影操作的代價把第2步的結(jié)果在Sname上作投影輸出,得到最終結(jié)果。因此第一種情況下執(zhí)行查詢的總時間約為105+2×5×10000秒。這里,所有內(nèi)存處理時間均忽略不計。5.1引言查詢執(zhí)行策略Q2代價分析計算自然連接的代價為了執(zhí)行自然連接,讀取Student和SC表的策略不變,總的讀取塊數(shù)仍為2100塊,花費(fèi)l05秒。

11、但自然連接的結(jié)果比第一種情況大大減少,為10000個。因此寫出這些元組時間為10000/10/20=50秒。僅為第一種情況的千分之一。讀取中間文件塊,執(zhí)行選擇運(yùn)算,花費(fèi)時間也為50秒。將第2步結(jié)果投影輸出。因此,第二種情況總的執(zhí)行時間≈105+50+50=205秒。5.1引言查詢執(zhí)行策略Q3代價分析先對SC表作選擇運(yùn)算,只需讀一遍SC表,存取l00塊花費(fèi)時間為5秒,因?yàn)闈M足條件的元組僅50個,不必使用中間文件。讀取STUDENT表,把讀入的STUDENT元組和內(nèi)存中的SC元組作連接。也只需讀一遍STUD

12、ENT表共l00塊花費(fèi)時間為5秒。把連接結(jié)果投影輸出。第三種情況總的執(zhí)行時間≈5+5=10秒。5.1引言假如SC表的Cno字段上有索引,第l步就不必讀取所有的SC元組而只需讀取CNO=‘2’的那些元組(50個)。存取的索引塊和SC中滿足條件的數(shù)據(jù)塊大約總共3~4塊。若STUDENT表在Sno上也有索引,則第2步也不必讀取所有的STUDENT元組,因?yàn)闈M足條件的SC記錄僅50個,涉及最多50個STUDENT記錄,因此讀取STUDENT表的塊數(shù)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。