關鍵字:sql 考核要求:達到“領會”
層次知識點:關系代數表達式的優化問題
查詢優化的目的就是為了系統在執行時既省時間又能提高效率。
在關系代數運算中,通常是先進行笛卡爾積或聯接運算,再進行選擇和投影。笛卡爾積或聯接運算卻往往花費教多的時間。
因此,恰當地安排選擇、投影和聯接的順序直接影響到整個操作所需要的時間和空間。 如何安排若干關系的運算操作步驟,是查詢優化所要考慮的問題。
關系代數表達式的等價變換規則
考核要求:達到“識記”
層次知識點:等價變換規則
兩個關系代數表達式等價是指用同樣的關系實例代替兩個表達式中相應關系時所得到的結果是完全一樣的。
等價變換規則有很多,不要死記,從語義上理解。
其實,只要在前面的學習中已經掌握關系運算的真正含義,就可以判斷兩個關系代數表達式是否等價。
優化的策略
考核要求:達到“領會”
層次知識點:優化的策略及其簡單應用
優化的策略主要有以下幾點:
?。?)在關系代數表達式中盡可能早地執行選擇操作;
?。?)把笛卡爾積和隨后的選擇操作合并成F聯接運算;
?。?)同時計算一連串的選擇和投影操作;
?。?)保留同一子表達式的結果;
?。?)適當對關系文件進行預處理 ;
?。?)計算表達式之前先估計一下怎么計算合算。
以上優化策略要求會簡單應用:先做選擇,運用投影去除多余屬性等等。
關系代數表達式的優化算法
考核要求:達到“簡單應用”
層次知識點:語法樹
學會畫語法樹,并掌握優化算法。
舉例
在教學數據庫S、SC、C中,用戶有一查詢語句:檢索女同學選修課程的課程名和任課教師名。
?。?)試寫出該查詢的關系代數表達式;
?。?)試寫出查詢優化的關系代數表達式;
?。?)畫出該查詢初始的關系代數表達式的語法樹;
?。?)使用2.4.4節的優化算法,對語法樹進行優化,并畫出優化后的語法樹。
原文轉自:http://www.anti-gravitydesign.com