第9章 關係查詢處理和查詢優化 資料庫系統概論

2021-05-23 00:31:44 字數 1198 閱讀 5531

1 .試述查詢優化在關係資料庫系統中的重要性和可能性。

答:重要性:關係系統的查詢優化既是 rdbms 實現的關鍵技術又是關係系統的優點所在。它減輕了使用者選擇訪問路徑的負擔。使用者只要提出「幹什麼」,不必指出「怎麼幹」。查詢優化的優點不僅在於使用者不必考慮如何最好地表達查詢以獲得較好的效率,而且在於系統可以比使用者程式的「優化』做得更好。

可能性:這是因為: ( l )優化器可以從資料字典中獲取許多統計資訊,例如關係中的元組數、關係中每個屬性值的分布情況、這些屬性上是否有索引、是什麼索引( b +樹索引還是 hash 索引或惟一索引或組合索引)等。優化器可以根據這些資訊選擇有效的執行計畫,而使用者程式則難以獲得這些資訊。 ( 2 )如果資料庫的物理統計資訊改變了,系統可以自動對查詢進行重新優化以選擇相適應的執行計畫。在非關係系統中必須重寫程式,而重寫程式在實際應用中往往是不太可能的。 ( 3 )優化器可以考慮數十甚至數百種不同的執行計畫,從中選出較優的乙個,而程式設計師一般只能考慮有限的幾種可能性。 ( 4 )優化器中包括了很多複雜的優化技術,這些優化技術往往只有最好的程式設計師才能掌握。系統的自動優化相當於使得所有人都擁有這些優化技術。

2 .對學生一課程資料庫有如下的查詢: select cname from student , course , sc where student . sno = sc . sno and sc . cno = course . cno and student . sdept = 'is' ; 此查詢要求資訊系學生選修了的所有課程名稱。試畫出用關係代數表示的語法樹,並用關係代數表示式優化演算法對原始的語法樹進行優化處理,畫出優化後的標準語法樹。

3 .試述查詢優化的一般準則。

答:下面的優化策略一般能提高查詢效率: ( l )選擇運算應盡可能先做; ( 2 )把投影運算和選擇運算同時進行; ( 3 )把投影同其前或其後的雙目運算結合起來執行; ( 4 )把某些選擇同在它前面要執行的笛卡兒積結合起來成為乙個連線運算; ( 5 )找出公共子表示式; ( 6 )選取合適的連線演算法。

4 .試述查詢優化的一般步驟。

答:各個關係系統的優化方法不盡相同,大致的步驟可以歸納如下: ( l )把查詢轉換成某種內部表示,通常用的內部表示是語法樹。 ( 2 )把語法樹轉換成標準(優化)形式。即利用優化演算法,把原始的語法樹轉換成優化的形式。 ( 3 )選擇低層的訪問路徑。 ( 4 )生成查詢計畫,選擇代價最小的。

關係查詢處理和查詢優化

v查詢優化分類 n代數優化 指關係代數表示式的優化 n物理優化 指訪問路徑和底層操作演算法的選擇 v關聯式資料庫管理系統查詢處理階段 1.查詢分析 2.查詢檢查 3.查詢優化 4.查詢執行 v選擇操作典型實現方法 1 全表掃瞄方法 table scan l對查詢的基本表順序掃瞄,逐一檢查每個元組是否...

關係查詢處理和查詢優化習題

1.假設關係r a,b 和s b,c,d 情況如下 r有20000個元組,s有1 200個元組,乙個塊能裝40 個r的元組,能裝30個s的元組,估算下列操作需要多少次磁碟塊讀寫。1 r上沒有索引,sclect from r 2000 40 500次 2 r中a為主碼,a有3層b 數索引,select...

第九章 關係查詢處理和查詢優化

這裡只寫了對於資料庫做題有幫助的部分b 樹內容 b 樹上的葉子結點儲存關鍵字以及相應記錄的位址,葉子結點以上各層作為索引使用。在資料庫中,b 樹葉子結點的上層都是索引,為了方便查詢,不涉及記錄的位址,每個葉子結點存放相應的記錄,也就是元組。並且元組按鍵值有序排放,即按照有b 樹索引的屬性值有序排放。...