SQL最佳化--查詢最佳化技術分類,sql最佳化--分類

來源:互聯網
上載者:User

SQL最佳化--查詢最佳化技術分類,sql最佳化--分類

資料庫調優的方式通常有如下幾種:
1)人工調優。
主要依賴於人,效率低下;要求操作者完全理解常識所依賴的原理,還需要對應用、資料庫管理系統、作業系統以及硬體有廣泛而深刻的理解。
2)基於案例的調優
總結典型應用案例情況中資料庫參數的推薦配置值、資料邏輯層設計等情況,從而為使用者的調優工作提供一定的參考和借鑒。但這種方式忽略了系統的動態性和不同系統間存在的差異。
3)自調優。

為資料庫系統建立一個模型,根據“影響資料庫系統效能效率的因素”,資料庫系統自動進行參數的配置。一些商務資料庫,實現了部分自調優技術。


查詢最佳化技術的分類:①查詢重用、②查詢重寫規則、③查詢演算法最佳化、④並行查詢最佳化、⑤分散式查詢最佳化、⑥其他最佳化技術

1)查詢重用:是指儘可能利用先前的執行結果,以達到節約查詢計算全過程的時間並減少資源消耗的目的。

主要分為以下兩種類型:

a)查詢結果的重用。在緩衝區中分配一塊緩衝塊,存放該SQL 陳述式文本和最後的結果集,當同樣的SQL輸入時,直接把結果返回。查詢結果的重用技術節約了查詢計劃產生時間,減少了查詢執行全過程的資源消耗。

b)查詢計劃的重用。緩衝一條查詢語句的執行計畫及其相應文法樹結構。查詢計劃的重用技術減少了查詢計劃產生的時間和資源消耗。

2)查詢重寫:是查詢語句的一種等價轉換,即對於任何相關模式的任意狀態都會產生相同的結果。

查詢最佳化技術類型:

a)文法級。查詢語言層的最佳化,基於文法進行最佳化。

b)代數級。查詢使用形式邏輯進行最佳化,運用關係代數的原理進行最佳化。

c)語義級。根據完整性條件約束,對查詢語句進行語義理解,推知一些可最佳化的操作。

d)物理級。物理最佳化技術,基於代價估算模型,比較得出各種執行方式中代價最小的。

查詢重寫是基於文法級、代數級、語義級的最佳化,可以統一歸屬到邏輯最佳化的範疇:基於代價估算模型是物理層面的最佳化,是從串連路徑中選擇代價最小的路徑的過程。

查詢最佳化重寫思路:

a)將過程性查詢轉換為描述性的查詢,如視圖重寫。

b)將複雜的查詢(如嵌套子查詢、外串連消除、嵌套串連消除)儘可能轉換為多表串連查詢。

c)將效率低的謂詞轉換為等價的效率高的謂詞(如等價謂詞重寫)。

3)查詢最佳化演算法:求解給定查詢語句的高效執行計畫的過程。也就是查詢計劃,也稱為查詢樹,它由一系列內部的操作符組成,這些操作符按一定的運算關係構成查詢的一個執行方案。

產生最優查詢計劃的策略:

a)基於規則最佳化。

根據經驗或一些已經探知或被證明有效方式,定義為“規則”(如根據關係代數得知的規則、根據經驗得知的規則等),用這些規則化簡查詢計劃產生過程中符合可被化簡的操作,使用啟發學習法規則排除一些明顯不好的存取路徑,這就是基於規則的最佳化。

b)基於代價最佳化。

根據一個代價評估模型,在產生查詢計劃的過程中,計算每條存取路徑(存取路徑主要包括上述三個“關係結點”)的花費,然後選擇代價最小的作為子路徑,這樣直至所有表串連完畢得到一個完整的路徑。主流資料庫都採用了基於規則和基於代價的技術。

4)並行查詢最佳化:在並行資料庫系統中,查詢最佳化的目標是尋找具有最小回應時間的查詢執行計畫,這需要把查詢工作分解為一些可以並行啟動並執行子工作。一些商務資料庫提供了並行查詢的功能,用以最佳化查詢執行操作。

在同一個SQL內,查詢並行可以分為:

a)操作內並行。將同一操作如單表掃描操作、兩表串連操作、排序操作等分解成多個獨立的子操作,由不同的CPU同時執行。

b)操作間並行。一條SQL查詢語句可以分解成多個子操作,由多個CPU執行。

5)分散式查詢最佳化:在分散式資料庫系統中, 查詢策略最佳化是查詢最佳化的重點。主要是資料轉送策略,A、B兩結點的資料進行串連,是A結點資料轉送到B結點或是從B到A或是先各自進行過濾然後再傳輸等)和局部處理最佳化(傳統的單結點資料庫的查詢最佳化技術)。

在分散式資料庫系統中,代價估算模型為:

總代價 = I/O代價 + CPU代價 + 通訊代價

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.