1. 程式人生 > >《數據庫系統概念》17-查詢優化

《數據庫系統概念》17-查詢優化

可用 system 資料 特定 問題 很多 gpo cep 信息

一、查詢優化是為處理查詢找出一個好的策略的過程。一個查詢一般有多種方法可以計算出結果,系統負責將用戶輸入的查詢轉換成能夠更有效執行的等價查詢。
復雜的查詢操作涉及多級存取磁盤的操作,由於從磁盤中傳輸數據比從內存中要慢得多,所以有必要進行查詢優化,以選擇一個能夠最小化磁盤存取的方法。
有很多等價規則可供將一個表達式轉化成等價表達式,可以使用這些規則系統地產生與所給查詢等價的所有表達式。
選擇查詢處理策略的第一步就是找到一個關系代數表達式,使它與所給的表示是等價並且據估計有更小的執行代價。

二、數據庫系統為執行一個操作所選擇的策略依賴於每個關系的大小和列值的分布情況。數據庫系統可以為每個關系r存儲統計信息,從而能夠基於這些可靠消息選擇合適的策略。這些統計信息包括:關系r中的元組數;關系r中的一個記錄的大小;關系r中某個特定屬性中出現的不同取值的數目等。這些統計信息使得我們可以估計各種操作的結果集的大小和執行操作的代價。當處理一個查詢的過沖中有多個索引可用於輔助的時候,關系的統計信息特別有用,這些信息對查詢處理策略的選擇有很大的影響。

三、對於每個表達式,可以用一些等價規則產生多個可選的執行計劃,然後從中選擇代價最小的執行計劃。為了減少需要產生的可選表達式和執行計劃的數量,產生了多種優化技術,比如可以使用啟發式的方法,來減少優化的代價。用於關系代數查詢轉換的啟發式規則包括“及早執行選擇操作”、“及早執行投影操作”、“避免笛卡爾積操作”等。
還可以使用物化視圖來加速查詢處理。當原關系發生修改時,需要用增量的視圖維護來高效地更新物化視圖。利用包含一個操作的輸入的變化量的代數表達式,能夠完成對該操作的變化量的計算。其他與物化視圖相關的問題還包括如何借助物化視圖進行查詢優化和如何選擇需要待物化的視圖。


學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan


《數據庫系統概念》17-查詢優化