數據庫典型啟發式規則有以下這些:
盡可能先做選擇運算。在優化策略中這是最重要、最基本的一條。它常常可以節省幾個數量級的執行時間,因為選擇運算一般會極大地減少中間結果。
投影運算和選擇運算同時進行。如有若干投影和選擇運算,并且它們都在同一個關系上進行操作,則可以在掃描此關系的同時完成所有的投影和選擇運算,以避免重復掃描。
把投影運算和其之前或之后的二元運算結合起來,這樣可以減少關系的掃描次數。
把某些選擇同在它前面要執行的笛卡兒積結合起來成為一個違接運算,違接特別是等值違接要比在同樣關系上進行笛卡兒積節省很多時間。
找出公共子表達式。如果某個重復出現的子表達式的結果不是很大的關系,并且從外存讀入這個關系比計算該子表達式的時間少得多,則先計算一次公共子表達式并把結果寫入中間文件是比較合算的。當對視圖進行查詢時,定義視圖的語句就是公共子表達式。
回答所涉及的環境:聯想天逸510S、Windows 10。
數據庫典型啟發式規則有以下這些:
盡可能先做選擇運算。在優化策略中這是最重要、最基本的一條。它常常可以節省幾個數量級的執行時間,因為選擇運算一般會極大地減少中間結果。
投影運算和選擇運算同時進行。如有若干投影和選擇運算,并且它們都在同一個關系上進行操作,則可以在掃描此關系的同時完成所有的投影和選擇運算,以避免重復掃描。
把投影運算和其之前或之后的二元運算結合起來,這樣可以減少關系的掃描次數。
把某些選擇同在它前面要執行的笛卡兒積結合起來成為一個違接運算,違接特別是等值違接要比在同樣關系上進行笛卡兒積節省很多時間。
找出公共子表達式。如果某個重復出現的子表達式的結果不是很大的關系,并且從外存讀入這個關系比計算該子表達式的時間少得多,則先計算一次公共子表達式并把結果寫入中間文件是比較合算的。當對視圖進行查詢時,定義視圖的語句就是公共子表達式。
回答所涉及的環境:聯想天逸510S、Windows 10。