關系系統(tǒng)及查詢優(yōu)化_第1頁
關系系統(tǒng)及查詢優(yōu)化_第2頁
關系系統(tǒng)及查詢優(yōu)化_第3頁
關系系統(tǒng)及查詢優(yōu)化_第4頁
關系系統(tǒng)及查詢優(yōu)化_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

關系系統(tǒng)及查詢優(yōu)化第1頁,課件共20頁,創(chuàng)作于2023年2月一、關系系統(tǒng)定義關系系統(tǒng):支持關系模型的數(shù)據(jù)庫管理系統(tǒng)稱為關系系統(tǒng)。(籠統(tǒng))關系模型中并非每一部分都同等重要,并不苛求一個實際的關系數(shù)據(jù)庫管理系統(tǒng)必須完全支持關系模型,也不苛求完全支持關系模型的系統(tǒng)才能稱為關系系統(tǒng)。一個系統(tǒng)可定義為關系系統(tǒng),當且僅當它至少:1、支持關系數(shù)據(jù)結構(表)2、支持選擇、投影和(自然)連接運算,對這些運算不要求用戶定義任何物理存取路徑。對關系系統(tǒng)的最低要求第2頁,課件共20頁,創(chuàng)作于2023年2月關系系統(tǒng)的定義(續(xù))?不支持關系數(shù)據(jù)結構的系統(tǒng)顯然不能稱為關系系統(tǒng)?僅支持關系數(shù)據(jù)結構,但沒有選擇、投影和連接運算功能的系統(tǒng)仍不能算作關系系統(tǒng)。原因:不能提高用戶的生產(chǎn)率支持選擇、投影和連接運算,但要求定義物理存取路徑,這種系統(tǒng)也不能算作真正的關系系統(tǒng)原因:就降低或喪失了數(shù)據(jù)的物理獨立性選擇、投影、連接運算是最有用的運算第3頁,課件共20頁,創(chuàng)作于2023年2月二、關系系統(tǒng)的分類前面定義的關系系統(tǒng)是關系系統(tǒng)的最小要求。按照E.F.Codd的思想,可以把關系系統(tǒng)分類:1、表式系統(tǒng) 僅支持表數(shù)據(jù)結構,不支持集合級的操作,不能算關系系統(tǒng)。2、最小關系系統(tǒng) 支持關系數(shù)據(jù)結構和三種關系操作。(FoxBase,FoxPro等)3、關系完備的系統(tǒng) 支持關系數(shù)據(jù)結構和所有的關系代數(shù)操作(功能上等價)。4、全關系系統(tǒng) 支持關系模型的所有特征。即不僅是關系上完備的,而且支持數(shù)據(jù)結構中域的概念,支持實體完整性和參照完整性。(目前大多數(shù)關系系統(tǒng)已接近或達到了這個目標)第4頁,課件共20頁,創(chuàng)作于2023年2月關系系統(tǒng)的分類(續(xù))

數(shù)據(jù)結構數(shù)據(jù)操作完整性表式系統(tǒng)表(最小)關系系統(tǒng)表選擇、投影、連接關系完備的系統(tǒng)表全關系系統(tǒng)第5頁,課件共20頁,創(chuàng)作于2023年2月全關系系統(tǒng)的十二條基本準則這是關系模型的奠基人E.F.Codd從理論和實際緊密結合的高度,對關系型DBMS的評述。從實際意義上看,這十二條準則可以作為評價或購買關系型產(chǎn)品的標準。詳細見書。第6頁,課件共20頁,創(chuàng)作于2023年2月三、關系系統(tǒng)的查詢優(yōu)化非關系系統(tǒng)中,用戶使用過程化的語言表達查詢要求、執(zhí)行的操作以及操作序列,用戶必須了解存取路徑,查詢效率由用戶的存取策略決定,需要用戶對查詢程序進行“優(yōu)化”。而在關系系統(tǒng)中,用戶只需提出“干什么”,而不必指出“怎么干”,由系統(tǒng)來確定存取策略,提高查詢效率,即完成查詢優(yōu)化的工作。查詢優(yōu)化在關系數(shù)據(jù)庫系統(tǒng)中有著非常重要的地位,是影響RDBMS性能的關鍵因素。系統(tǒng)的“優(yōu)化器”功能與用戶“優(yōu)化工作”對比:1)可以從數(shù)據(jù)字典中獲取許多統(tǒng)計信息2)如果物理統(tǒng)計信息改變了,前者可重新優(yōu)化選擇相適應的執(zhí)行計劃,而后者必須重新寫程序,而實際應用中往往不太可能。3)前者可考慮數(shù)百種不同的執(zhí)行計劃,而程序員一般只能考慮有限的幾種可能性。4)前者包括了很多復雜的優(yōu)化技術,往往只有最好的程序員才能掌握。系統(tǒng)的自動優(yōu)化使得所有人都擁有這些優(yōu)化技術。第7頁,課件共20頁,創(chuàng)作于2023年2月查詢優(yōu)化的一般步驟1)將查詢轉換成某種內(nèi)部表示,通常是語法樹(關系代數(shù)語法樹)。2)根據(jù)一定的等價變換規(guī)則把語法樹轉換成標準形式(優(yōu)化形式)。 可采用關系代數(shù)表達式的優(yōu)化算法自動進行優(yōu)化。3)選擇低層的操作算法,即確定存取路徑。 對于語法樹中的每一個操作需要根據(jù)存取路徑(有無索引)、數(shù)據(jù)的存儲分布、存儲數(shù)據(jù)的聚簇等信息來選擇具體的執(zhí)行算法。4)生成查詢計劃(執(zhí)行方案),選擇代價最小的。 對每個執(zhí)行計劃計算代價,從中選擇代價最小的一個。在集中式關系數(shù)據(jù)庫中,計算代價時主要考慮磁盤讀寫的I/O次數(shù),也有一些系統(tǒng)換考慮了CPU的處理時間。目前的商品化RDBMS答對采用基于代價的優(yōu)化算法:這種方法要求優(yōu)化器充分考慮系統(tǒng)中的各種參數(shù)(如緩沖區(qū)大小、表的大小、數(shù)據(jù)的分布、存取路徑等)。集中式數(shù)據(jù)庫:總代價=I/O代價+CPU代價(時間) 多用戶數(shù)據(jù)庫:總代價=I/O代價+CPU代價+內(nèi)存代價(時間)第8頁,課件共20頁,創(chuàng)作于2023年2月查詢優(yōu)化的一般準則1)選擇運算應盡可能先做。因為它可使計算的中間結果大大變小。2)在執(zhí)行連接(自然連接)前對關系適當?shù)仡A處理。主要有兩種方法,在連接屬性上建立索引和對關系排序,然后執(zhí)行連接。(詳細見書P.161)3)把投影運算和選擇運算同時進行。當他們對同一個關系操作,則可以在掃描關系的同時完成所有的這些運算來避免重復掃描關系。4)把投影和其前或其后的雙目運算結合起來,沒有必要為了去掉某些字段而掃描一遍關系。5)把某些選擇同在它前面要執(zhí)行的笛卡兒積結合起來成為一個連接運算,連接特別是等值連接運算要比同樣關系上的笛卡兒積省很多時間。6)找出公共子表達式,如果這種重復出現(xiàn)的子表達式結果不是很大,從外存讀入結果比計算該子表達式的時間少得多,可先計算一次該子表達式并把結果寫入中間文件是合算的。如查詢的是視圖,定義視圖的表達式就是公共子表達式的情況。第9頁,課件共20頁,創(chuàng)作于2023年2月關系代數(shù)等價變換規(guī)則各種查詢語言都可以轉換成關系代數(shù)表達式,因此查詢優(yōu)化可以轉換為對關系代數(shù)表達式的優(yōu)化。而其優(yōu)化的基礎是關系代數(shù)表達式的等價變換規(guī)則。等價:如果用相同的關系來代替兩個表達式中相應的關系所得到的結果是相同的,則說這兩個關系代數(shù)表達式E1、E2是等價的,記為E1≡E2。常用的等價變換規(guī)則:10條(見書P.162-164)。關系代數(shù)表達式的優(yōu)化原則:應用等價變換規(guī)則來優(yōu)化關系表達式,使得優(yōu)化后的表達式能遵循查詢優(yōu)化的一般準則,如把選擇和投影盡可能地早做(即把它們移到表達式語法樹的下部,葉端)。第10頁,課件共20頁,創(chuàng)作于2023年2月關系代數(shù)表達式的優(yōu)化算法算法:關系表達式的優(yōu)化。輸入:一個關系表達式的語法樹。輸出:計算該表達式的程序。1)利用規(guī)則4把形如F1∧F2∧…∧Fn(E)變換為

F1(

F2(…(Fn(E))…))。2)對每個選擇,利用規(guī)則4-8盡可能把它移到樹的葉端。3)對每個投影,利用規(guī)則3,9,10,5中的一般形式盡可能把它移向樹的葉端。4)利用規(guī)則3-5把選擇和投影的串接合并成單個選擇、單個投影或一個選擇后跟一個投影。使得多個選擇或投影能同時執(zhí)行,或在一次掃描中全部完成。5)將得到的語法樹的內(nèi)結點進行分組。每一雙目運算和它所有的直接祖先(,

)為一組;如果其后代直到葉子全是單目運算,則也將它們并入該組;但當雙目運算是笛卡兒積,而且其后的選擇不能與它結合為等值連接時,則一直到葉子的一目運算結點須單獨立一組。6)自動生成一個程序。每組結點的計算是程序中的一步。各步的順序是任意的,只要保證任何一組的計算不會在它的后代組之前計算。7)執(zhí)行時從葉端依次向上進行,每組運算只對關系進行一次掃描。第11頁,課件共20頁,創(chuàng)作于2023年2月優(yōu)化的一般步驟(1)把查詢轉換成某種內(nèi)部表示通常是(關系代數(shù))語法樹,以4.2.2節(jié)中的實例為例。(2)把語法樹轉換成標準(優(yōu)化)形式。第12頁,課件共20頁,創(chuàng)作于2023年2月語法樹最終的優(yōu)化形式(運用了哪些變換規(guī)則?)

Sname

Student.Sno=SC.Sno

×

Sname,Sno

Sno

Student

Cno=‘2’

SC

StudentCno=‘2’SC×SnameStudent.Sno=SC.SnoSname,Student.Sno,SC.Sno第13頁,課件共20頁,創(chuàng)作于2023年2月(3)選擇低層的存取路徑

?根據(jù)第(2)步得到的優(yōu)化了的語法樹計算關系表達式值的時候要充分考慮索引、數(shù)據(jù)的存儲分布等存取路徑,利用它們進一步改善查詢效率。優(yōu)化器查找數(shù)據(jù)字典獲得當前數(shù)據(jù)庫狀態(tài)信息選擇字段上是否有索引連接的兩個表是否有序連接字段上是否有索引然后根據(jù)一定的優(yōu)化規(guī)則選擇存取路徑第14頁,課件共20頁,創(chuàng)作于2023年2月(4)生成查詢計劃,選擇代價最小的

?查詢計劃是由一組內(nèi)部過程組成的,這組內(nèi)部過程實現(xiàn)按某條存取路徑計算關系表達式的值。在作連接運算時,若兩個表(設為R1,R2)均無序,連接屬性上也沒有索引,則可以有下面幾種查詢計劃:

對兩個表作排序預處理對R1在連接屬性上建索引對R2在連接屬性上建索引在R1,R2的連接屬性上均建索引對不同的查詢計劃計算代價,選擇代價最小的一個。在計算代價時主要考慮磁盤讀寫的I/O數(shù),內(nèi)存CPU處理時間在粗略計算時可不考慮。第15頁,課件共20頁,創(chuàng)作于2023年2月實例_查詢優(yōu)化的實例SELECTStudent.SnameFROMStudent,SCWHERStudent.Sno=SC.SnoANDSC.Cno=‘2’;系統(tǒng)可以用多種等價的關系代數(shù)表達式來完成這一查詢:如q1=

sname(

student.sno=sc.sno∧o=‘2’(student×sc)) q2=sname(o=‘2’(studentsc)) q3=sname(studento=‘2’(sc))這三種不同的查詢執(zhí)行策略,其查詢時間相差很大。 可通過某種代價模型(如只計算I/O時間代價),粗略計算出各種查詢執(zhí)行方案的代價,選擇代價最小的來實現(xiàn)查詢。第16頁,課件共20頁,創(chuàng)作于2023年2月實例_查詢優(yōu)化的實例讀取Student和SC表的策略Student表SC表100個SC元組內(nèi)存緩沖區(qū)中間文件10個Student元組10個連接后的元組第一個五塊第二個五塊……

共一千個學生記錄…

共一萬個選課記錄第1-100個元組第101-200個元組第1-10個元組第11-20個元組第一塊第二塊…第n塊第17頁,課件共20頁,創(chuàng)作于2023年2月Student表第1個五塊的元組

SC表第1塊的元組SC表第2塊的元組

……SC表第n塊的元組Student表第2個五塊的元組

SC表第1塊的元組SC表第2塊的元組

……SC表第n塊的元組

Student表最后五塊的元組SC表第1塊的元組SC表第2塊的元組

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論