資料庫系統 查詢優化技術

2021-08-14 08:34:05 字數 1836 閱讀 2070

語義優化:利用模型的語義及完整性規則,優化查詢(相同意義的不同sql表達)

語法優化:利用語法結構,優化操作的執行順序(邏輯層優化)

執行優化:訪問路徑和執行演算法的選擇和執行次序優化(物理層優化)

語義優化:內容等價性

如去掉無關表,去掉無關屬性

語法優化:語法等價性

改變次序,盡可能早做選擇,投影運算同時保證等價性

執行優化:物理等價性

選擇不同的演算法實現,保證結果等價

關係代數操作次序優化->代價估算->演算法選擇與裝配次序

語法樹:關係代數表示式的執行次序表達

盡可能早做選擇和投影

有選擇投影一元操作串起來

把投影和前或後的二元運算結合

把選擇和乘積合併成連線

...一棵未優化的語法樹->優化後的語法樹

連線與連線,積與積的交換律:小資料集全部載入記憶體

連線與連線,積和積的結合律:小資料集全部載入記憶體

投影串接律:兩遍掃瞄變一遍

選擇串接律:兩遍掃瞄變一遍

選擇和投影的交換律:方便盡可能早做投影選擇

選擇和積的交換律:減少乘積操作,優化關鍵

投影和積的交換律:減少每條記錄的長度,提高效率

選擇和並的交換律:減少中間結果

選擇和差的交換律:減少中間結果

投影和並的交換律:減少中間結果

輸入:關係代數語法樹

輸出:計算該表示式的程式

演算法:(s1)依據定理l4,把選擇拆開

(s2)對每個選擇,依據定理l4至l9,盡可能把它移至樹的底部。

(s3)對每個投影,依據定理l3,l7,l10和l5,盡可能把它移至樹的底部。如

果乙個投影是對某表示式所有屬性進行的,則去掉之。

(s4)依據定理l4至l5把串接的選擇和投影組合為單個選擇、單個投影,或者

一選擇後跟乙個投影。

(s5)對修改後的語法樹,將其內結點按以下方式分組:

每個二元運算結點(積、並、差、連線等)和其所有一元運算直接祖先結點放在

一組;對於其後代結點,若後代結點是一串一元運算且以樹葉為終點,則將這

些一元運算結點放在該組中;若該二元運算結點是笛卡兒積,且其後代結點不

能和它組合成等連線,則不能將後代結點歸入該組。

(s6)產生乙個程式:它以每組結點為一步,但後代組先執行

相同目標的不同演算法實現:一趟、兩趟、索引、雜湊、排序等

衡量指標:io次數,cpu代價、記憶體代價等

資料庫的統計資訊:存放在資料字典中或系統目錄中,方便dbms選擇合適物理執行

更新統計資訊:需要dba手動更新,相應的命令

統計資訊:

t r 或t(r):關係r的元組數目;

 b r 或b(r) :關係r的磁碟塊數目;

 i r 或i(r) :關係r的每個元組的位元組數;

 f r 或f(r) : r的塊因子 , 即一塊能夠儲存的r的元組數目

 v(r, a): r中屬性a出現不同值的數目,即a (r) 的數目.

 sc(r, a): r中屬性a的選擇基數,滿足a上等值條件的平均記錄數

估計投影:

t:不變,行數不變

b:變小,每條記錄變短,節省了磁碟塊

選擇運算:

相等:t(r)/v(r,a),不知道v時取10

小於:t(r)/3

串接條件:分母相乘

或者:估計都不滿足的概率

連線:  tr*ts*1/max(v(r,y),v(s,y))

資料庫系統查詢優化的步驟

資料庫系統查詢優化的總目標是 選擇有效的策略,求得給定關係表示式的值,實際系統對查詢優化的具體實現不盡相同,但一般來說,可以歸納為四個步驟 1.將查詢轉化為某種內部表示,通常是語法樹.2.根據一定的等價變換規則把語法樹轉換成標準形式.3.選擇低層的操作演算法.對於語法樹中的每乙個操作需要根據訪問路徑...

資料庫系統表查詢

1.利用sysobjects系統表查詢 在這個表中,在資料庫中建立的每個物件 例如約束 預設值 日誌 規則以及儲存過程 都有對應一行。select from sysobjects where xtype u 物件型別 xtype 值的含義 af aggregate function clr c ch...

資料庫系統mysql MySQL資料庫系統

1 mysql的特點 1 多執行緒 多使用者 2 基於c s 客戶端 伺服器 架構 3 簡單易用 查詢速度快 4 安全可靠 2 mysql編譯安裝 代表鍵盤上tab鍵 1 準備工作 解除安裝使用rpm方式安裝的mysql rpm e mysql nodeps 安裝cmake包 cd media ta...