數據庫七(關係查詢處理和查詢優化)

一、關係數據庫系統的查詢處理:

查詢分析:對查詢語句進行掃描,詞法分析、語法分析、語義分析、符號名轉換

查詢檢查:根據數據字典對合法的查詢語句進行語義檢查;

根據數據字典中用戶權限和完整性約束定義對用戶存取權限進行檢查

檢查通過後,把SQL查詢語句轉換爲等價的關係代數表達式

這個過程把外部表示轉爲內部表示

查詢優化:選擇一個高效執行的查詢處理策略

依據:基於規則、基於代價、基於語義

代數優化:關係代數表達式的優化

物理優化:存取路徑和底層操作算法的選擇

查詢執行:依據優化器得到的執行策略生成查詢計劃

代碼生成器生成執行查詢計劃的代碼

選擇操作的實現:

1.簡單的全表掃描方法;2.索引(散列)掃描方法

連接操作的實現:

1.嵌套循環方法:對外層的每個元組,檢索內層循環中的每個元組

2.排序合併方法:將表按連接屬性進行排序,然後依次掃描兩個表進行連接

3.索引連接方法:在其中一個表的連接屬性上建立索引,然後對另一個表的每個元組通過索引進行連接

 

二、關係數據庫系統的查詢優化:

RDBMS通過某種代價模型計算出各種查詢執行策略的執行代價,然後選擇代價最小的執行方案

集中式數據庫:

執行開銷包括:磁盤存取塊數(IO)、處理機時間(CPU)、查詢的內存開銷。IO代價最主要

分佈式數據庫:

總代價 = IO代價+CPU代價+內存代價+通信代價

查詢優化總目標:

選擇有效的策略;求得給定關係表達式的值;使得查詢代價最小(較小)

三、代數優化:

代數優化策略:通過對關係代數表達式的等價變化來提高查詢效率

關係代數表達式的等價:用相同的關係代替兩個表達式中相應關係所得結果是相同的

常用等價變換規則:

連接、笛卡爾積交換律;連接、笛卡爾積結合律;投影的串接定律;選擇的串接定律;

選擇投影交換律;選擇對並(差、連接)的交換律;投影對笛卡爾積的分配律

查詢樹的啓發式優化:

1.選擇算法儘可能先做;

2.把投影和選擇運算同時進行;

3.把投影同其前後的雙目運算結合起來;

4.把某些選擇同它前面的笛卡爾積結合爲一個連接運算

5.找到公共子表達式

 

四、物理優化:

選擇高效合理的操作算法或存取路徑,求得優化的查詢計劃

選擇的方法:

基於規則的啓發式優化;基於代價估算的優化;兩者結合的優化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章