資料庫訪問優化法則詳解之利用更多的資源

2022-04-07 03:36:56 字數 2032 閱讀 9119

資料庫訪問優化法則詳解之利用更多的資源

利用更多的資源

可利用更多的資源,達到優化資料庫的目的。

客戶端的多程序並行訪問

多程序並行訪問是指在客戶端建立多個程序(執行緒),每個程序建立乙個與資料庫的連線,然後同時向資料庫提交訪問請求。當資料庫主機資源有空閒時,我們可以採用客戶端多程序並行訪問的方法來提高效能。如果資料庫主機已經很忙時,採用多程序並行訪問,效能不會提高,反而可能會更慢。所以,最好與

dba

或系統管理員進行溝通後再決定是否採用這種方式。

例如:我們有

10 000

個產品id

,現在需要根據

id 取出產品的詳細資訊,如果單執行緒訪問,按每個

io 要

5ms

計算,忽略主機的

cpu

運算及網路傳輸時間,我們需要

50s才能完成任務。如果採用

5 個並行訪問,每個程序訪問

2000 個id

,那麼10s

就有可能完成任務。

那是不是並行數越多越好呢?開

1000

個並行,是否只要

50ms

就能搞定?答案肯定是否定的。當並行數超過伺服器主機資源的上限時效能就不會再提高,如果再增加,反而會增加主機的程序間排程成本和程序衝突概率。

以下是一些如何設定並行數的基本建議:(1

)如果瓶頸在伺服器主機,但是主機還有空閒資源,那麼最大並行數取主機的

cpu核數和主機提供資料服務的磁碟數兩個引數中的最小值,同時要保證主機有資源做其他任務。(2

)如果瓶頸在客戶端處理上,但是客戶端還有空閒資源,那建議不要增加

sql

的並行,而是用乙個程序取回資料後,在客戶端起多個程序處理即可,程序數根據客戶端的

cpu

核數計算。(3

)如果瓶頸在客戶端網路,那建議做資料壓縮或者增加多個客戶端,採用

mapreduce

的架構處理。(4

)如果瓶頸在伺服器網路,那需要增加伺服器的網路頻寬或者在服務端將資料壓縮後再處理了。

資料庫的並行處理

資料庫的並行處理是指客戶端一條

sql

的請求,資料庫內部自動分解成多個程序並行處理,如圖

3-8

所示。並不是所有的

sql

都可以使用並行處理,一般只有對錶或索引進行全部訪問時才可以使用並行。資料庫表預設是不開啟並行訪問的,所以需要指定

sql

並行的提示,如下所示:

select /*+parallel(a,4)*/ * from employee;

並行的優點:

使用多程序處理,充分利用資料庫主機資源(

cpu 和io

),提高效能。

並行的缺點:(1

)單個會話占用大量資源,影響其他會話,所以只適合在主機負載低的時期使用。(2

)只能採用直接

io 訪問,不能利用快取資料,所以執行前會觸發將髒快取資料寫入磁碟的操作。

注:(1

)並行處理在

oltp

類系統中慎用。使用不當會導致乙個會話把主機資源全部占用,而正常事務得不到及時響應,所以其一般只是用於資料倉儲平台。(2

)一般而言,對於百萬級記錄以下的小表採用並行訪問的話,並不能提高,反而可能會更差。

寫在最後:效能優化是一門藝術,選擇了正確的方法可以讓你事半功倍。本文的優化法則帶給你的是正常思路,也可以說是基本知識。當然,也許有很多專家提出一些新的「奇門武功」,但往往不是常人可掌控,甚至會使人「走火入魔」,

oracle

資料庫中的一些配置引數優化就曾經讓許多人「走火入魔」。在這裡還需要強調一點,技術人最容易犯的錯誤是過度優化。

切記,效能優化是無止境的。當效能達到業務期望時,就不要再過度優化了,因為優化的成本會越來越高,過度優化會讓系統的可維護性及可擴充套件性降低。

本文選自《

oracle dba手記3

:資料庫效能優化與內部原理解析》一書

本書詳細資訊

:

資料庫訪問優化法則詳解之利用更多的資源

資料庫訪問優化法則詳解之利用更多的資源 利用更多的資源 可利用更多的資源,達到優化資料庫的目的。客戶端的多程序並行訪問 多程序並行訪問是指在客戶端建立多個程序 執行緒 每個程序建立乙個與資料庫的連線,然後同時向資料庫提交訪問請求。當資料庫主機資源有空閒時,我們可以採用客戶端多程序並行訪問的方法來提高...

資料庫訪問優化法則詳解之利用更多的資源

資料庫訪問優化法則詳解之利用更多的資源 利用更多的資源 可利用更多的資源,達到優化資料庫的目的。客戶端的多程序並行訪問 多程序並行訪問是指在客戶端建立多個程序 執行緒 每個程序建立乙個與資料庫的連線,然後同時向資料庫提交訪問請求。當資料庫主機資源有空閒時,我們可以採用客戶端多程序並行訪問的方法來提高...

資料庫訪問優化法則

從圖上可以看到基本上每種裝置都有兩個指標 延時 響應時間 表示硬體的突發處理能力 頻寬 吞吐量 代表硬體持續處理能力。從上圖可以看出,計算機系統硬體效能從高到代依次為 cpu cache l1 l2 l3 記憶體 ssd硬碟 網路 硬碟 根據資料庫知識,我們可以列出每種硬體主要的工作內容 cpu及記...