資料庫管理系統(DBMS)中的啟發式最佳化是什麼?
基於成本的最佳化成本高昂。啟發式方法用於減少基於成本的方法中必須做出的選擇數量。
規則
啟發式最佳化透過使用一組可以提高效能的規則來轉換表示式樹。這些規則如下:
首先執行查詢中的選擇過程。對於任何SQL表,這都應該是第一個操作。透過這樣做,我們可以減少查詢所需的記錄數量,而不是在查詢期間使用所有表。
在查詢中儘快執行所有投影。有點像選擇,但這種方法有助於減少查詢中的列數。
執行最嚴格的連線和選擇操作。這意味著只選擇那些將導致相對較少記錄並且在查詢中非常必要的表和/或檢視集。顯然,當連線記錄較少的表時,任何查詢的執行效率都會更高。
有些系統只使用啟發式方法,而另一些系統則將啟發式方法與部分基於成本的最佳化相結合。
啟發式最佳化的步驟
讓我們看看啟發式最佳化中涉及的步驟,如下所述:
將連詞選擇分解成一系列單一選擇操作。
將選擇操作向下移動到查詢樹,以便儘早執行。
首先執行那些將產生最小關係的選擇和連線操作。
用連線操作替換笛卡爾積操作和選擇操作。
儘可能地向下分解和移動樹。
識別其操作是流水線的那些子樹。
廣告