Optimization

如何應用啟發式算法來優化表達式樹?

  • June 18, 2014

我已經轉換了以下 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?

我剛剛想出瞭如何做到這一點,所以我會回答它,以防其他人有類似的問題。

  1. 盡可能在樹的下方引入 SELECT,以減少所需的比較次數。
  2. 在樹的最下方也引入了 PROJECT,以減少列數。
  3. 在笛卡爾積後跟 SELECT 的地方使用 JOIN。(我的樹中沒有任何東西,但這顯然是已經完成的)。

我的最終樹如下所示:

優化的規範查詢樹

引用自:https://dba.stackexchange.com/questions/63355