Optimization
如何應用啟發式算法來優化表達式樹?
我已經轉換了以下 SQL 查詢:
SELECT name FROM dog d, works_at w WHERE (d.owner_name = w.person_name) AND (w.kennal_name = "Breeders");
進入以下表達式樹:
我的主要問題是如何應用啟發式算法來優化表達式樹?
是否可以在查詢樹中使用縮寫詞(例如 dog as d),還是我必須寫出 dog.owner_name 來代替 d.owner_name?
我剛剛想出瞭如何做到這一點,所以我會回答它,以防其他人有類似的問題。
- 盡可能在樹的下方引入 SELECT,以減少所需的比較次數。
- 在樹的最下方也引入了 PROJECT,以減少列數。
- 在笛卡爾積後跟 SELECT 的地方使用 JOIN。(我的樹中沒有任何東西,但這顯然是已經完成的)。
我的最終樹如下所示: