天天看點

DB2資料庫性能優化介紹

前段時間,我從CSDN得到了這本書《DB2資料庫性能調整和優化(第2版)》,這是一本介紹DB2資料庫性能調優的書籍,此書覆寫了DB2資料庫性能調優所需的全部知識和工具,而且還提供了大量的性能調優的實際案例,頗有一種“一書在手,DB2盡在掌握”的豪情。大家都知道,性能調優是一個系統工程,通過全面的實時監控,分析OS、I/O性能、記憶體的使用情況,DBA才能找出是否是資料庫自身程式出了問題,又或者是伺服器上運作的應用出了問題。

對于DB2資料庫來說,這一切都建立在深刻了解DB2的鎖機制以及并發機制、索引原理、資料庫參數、優化器原理、SQL腳本的優化等這些技術點的掌握之上,對這些技術點掌握的越深刻,那麼出現問題後才能快速地估計和判斷,并且提出解決問題的方法。

對于DB2資料庫DBA來說,下面的工具是必須要熟練掌握的:

1)快照

2)db2pd

3)db2expln

4)事件監控器

為了讓不熟悉DB2的朋友對DB2有正确的認識,下面我介紹一下DB2的背景資訊。

DB2是IBM公司發行的一種大型關系資料庫系統。它主要應用于大型的應用系統,并具有良好的可伸縮性,支援從大型機環境到單使用者伺服器環境,可應用于OS/2、Windows等作業系統環境之上。 DB2系統提供了高層次的資料利用性、完整性、安全性、可恢複性等特性,以及從小規模到大規模應用程式的執行和支援能力,而且具有與平台無關的基本功能和SQL指令。

DB2采用了資料分級技術,能夠使大型機的資料很友善地下載下傳到LAN資料庫伺服器,使得客戶機/伺服器使用者和基于LAN的應用程式可以通路大型機的資料,并使資料庫本地化以及遠端連接配接的透明化。 它以擁有一個非常完備的查詢優化器而著稱,其外部連接配接改善了查詢性能,并支援多任務并行查詢。 DB2有很好的網絡支援能力,每個子系統可以連接配接十幾萬個分布式使用者,可同時激活上千個活動線程,對大型分布式應用系統尤為适用。

DB2資料庫家族是非常龐大的,它有多種版本,比如:

1)DB2 Everyplace

主要用于移動計算。

2)DB2 Personal Edition

DB2 Personal Edition是單使用者RDBMS,運作于低價的商用硬體桌面計算機。

3)DB2 Express - C

DB2 Express - C其實不算DB2系列的一個版本,但是它提供了DB2 Express 的大多數功能。

4)DB2 Express Edition

DB2 Express Edition是一種功能全面的支援Web 的客戶機/伺服器RDBMS。它提供一個低價的入門級伺服器,主要用于小型企業和部門的計算任務。

5)DB2 Workgroup Edition

DB2 Workgroup Edition與DB2 Express的功能相同,僅在伺服器可安裝的記憶體和價值單元的數量方面有差別。

6)DB2 Enterprise Edition

DB2 Enterprise Edition是一種全功能的RDBMS。它持所有UNIX、Linux和Windows,适合作為大型和中型的部門伺服器。

7)Data Enterprise Developer Edition

Data Enterprise Developer Edition是為應用程式開發人員提供的特殊版本,已經被廢棄。

在了解了DB2的背景資訊後,下面我們需要明确什麼是性能?

性能是業務應用系統在特定硬體資源和工作負載下所表現出來的處理能力。

性能主要通過系統響應實際、吞吐量、可用性(資源使用率)等來衡量。

那麼,如何讓系統保持良好的性能呢?

主要從以下幾個方面進行考慮:

1)實體資源足夠且能充分合理地使用

系統需要配置充足的CPU、記憶體、高速硬碟、網絡帶寬,同時也要進行合理地配置設定使用。

2)良好的存儲I/O設計

必須有足夠的磁盤裝置來確定充分的I/O并行性,以支援大容量的并發事務。

3)合理的資料庫配置參數

這會影響到資料庫資源的配置設定,資源優勢的發揮,資料庫運作是否最優。

4)確定應用程式持有鎖的時間盡可能短

盡可能晚地啟動事務的第一條SQL語句,并使事務的更新盡可能接近送出階段,使得事務的持續時間盡可能地短。

5)為表建立最合理的索引

確定查詢中進行連接配接操作的列都有索引。

6)高效地使用SQL語句

7)分析SQL執行計劃

找出SQL的運作瓶頸,并做出調整。

8)資料庫的實體和邏輯設計

用最合理的資料庫技術來實作我們的業務邏輯,良好而合理的設計是整個系統高效運作的必要條件。

9)統計資訊更新、碎片整理

定期更新統計資訊,使得優化器時刻為SQL制定最合理的執行計劃。

10)熟悉DB2優化器的工作原理

優化器是DB2的靈魂和心髒。