數據庫管理系統是現代應用程序的核心,保持數據庫平穩順暢運行是組織必須保證的底線。數據庫性能工具可以幫助數據庫管理員優化系統操作,避免或者預防性能問題。但是,在購買這些工具之前,DBA和IT經理們應該對評估不同產品要考慮的關鍵功能特性有明確的理解和認識。
在構建數據庫性能管理能力時,有三種類型的工具可供考慮:其一是確保數據庫系統級的性能水平最優化,其二是管理數據庫結構的性能,幫助維護數據庫中保存數據的效率,第三是監控SQL和應用性能,識別可以改善應用程序代碼的問題點。
為幫助你判斷組織需要哪些工具,我們下面會針對每種類型來介紹應該關注的功能特性。
不同的數據庫性能工具提供了什么功能?
數據庫系統監控和管理工具。這類型軟件關注數據庫系統內部因素,包括系統資源和數據庫系統參數。它可以持續監視和報告數據庫的狀態,DBA可以設置性能閾值,一旦達到某個值就會觸發告警。這些工具通常會提供一個指示面板,展示各種關鍵性能指標和閾值,同時還會有修改這些閾值設置以及其它參數的功能界面。這些界面通常會提供配置報表需求的機制,可以生成或定時生成生產環境的數據庫性能報告。
此外,好的數據庫系統性能工具還可以提供數據庫資源使用量的信息,例如緩存池消耗的內存,CPU利用率,頁面鎖情況。更高級的工具還可以根據測量到的系統資源使用量提供性能優化推薦配置。
因為大多數數據庫部署場景都不會只有一個實例,系統級的數據庫性能工具應該能提供統一視圖,使DBA可以在一個界面上管理多個實例。這種功能包括諸如自動恢復數據庫實例的功能,以及定制安裝向導功能。
數據庫結構監控和管理產品。這種工具為DBA提供的功能可以幫助識別、分析和修復數據庫空間碎片和空間使用問題。數據庫分析工具監控、審查并對數據庫結構存儲方面的信息進行報告,例如表空間和索引,分析并改進空間利用率。
這些產品還可以自動分析可利用空間,管理諸如空間不足的問題,設定數據庫對象可用空間上限,管理混亂和分散的數據。產品還提供達到這些條件后自動向DBA告警的功能。
許多數據庫結構化性能工具還提供糾正問題的功能,這些產品可以給數據分配更多存儲空間或者重組數據。重組數據就是重新整理數據,通常包含多個步驟的處理過程,必須對這些步驟管理執行。一些高級工具提供了識別數據庫結構的能力,同時不影響數據庫正常運行和提供給應用訪問。
SQL監控和管理軟件。這類型工具監視SQL的運行,支持DBA或數據庫性能分析師基于資源利用率識別潛在問題程序和問題SQL語句。例如,SQL監控器可以按CPU利用率或者I/O請求量排序,所以關注優化最消耗資源的SQL語句就更容易些了。SQL監控工具還應該能找到SQL語句的調用源頭,掌握SQL是來自某個特殊程序、存儲過程、觸發器還是終端用戶。
在找到可能存在問題的語句之后,具備訪問計劃分析功能的SQL數據庫性能工具可以針對個別語句和程序檢查訪問計劃。訪問計劃是由數據庫優化器組件制定的,包含的實際方法將用于規劃數據庫訪問請求數據的計劃。這些工具簡化了SQL優化圖表,可以直接可視化地展示解釋路徑,SQL優化向導可以用于優化性能并推薦修改SQL代碼的方法。(注:訪問計劃指的是語句執行計劃,是數據庫收到SQL執行請求后對語句的詳細處理過程。后文訪問路徑亦是此意。)
一些SQL數據庫性能工具還提供了模擬生產環境的測試功能。通常,測試環境與生產環境的系統資源是不一樣的,因此SQL訪問路徑可能差異很大,即便SQL代碼沒有任何變化執行情況可能也不一樣。這些工具可以在測試環境模擬生產環境來消除這類問題。
市場上領先的供應商提供的數據庫性能工具都涉及上述各種類型的功能特性。每種類型都有專門的工具可選,也有一些工具提供的功能涵蓋了以上各類型。
選擇性能工具的其它考慮因素
評估數據庫性能工具時,還有下面一些重要因素要考慮:
待管理數據庫類型有多種。異構數據庫性能工具可以管理不同類型的數據庫,使用相同或相似的界面,而同構數據庫性能工具只能管理一種類型的數據庫。主要使用固定一種數據庫的機構,或者每位DBA專攻特定數據庫的機構,應該考慮選擇同構數據庫性能工具,因為這種數據庫性能工具可以對具體某一種數據庫提供更全面的性能管理功能,這樣查找和修復問題就更容易一些。
對于使用多種數據庫類型的網站,DBA人員數量是有限的,這種時候異構數據庫性能管理工具就有優勢了,它們可以為每種數據庫提供類似的功能,使得DBA監管多種平臺更容易。此外,異構工具可以屏蔽不同數據庫之間的差異,簡化性能監控和優化任務。
不過,在選擇異構工具時,要確保全面了解它對每種數據庫支持的功能,是否能滿足組織需要。這種類型的工具為所支持的每種數據庫提供的性能管理功能在廣度和深度方面差異很大,這是很常見的。
隨時間推移持續度量。數據庫性能工具具備識別和解決當前問題的功能是非常重要的,更重要的是還要能隨著時間推移持續監控和分析數據庫性能指標。大多數監視數據庫系統、數據庫結構和SQL的工具還會存儲歷史性能數據明細。這一特性通常稱為數據庫性能數據倉庫,或者叫歷史性能表。
保存數據庫性能歷史數據會幫助你識別長時間運行時的性能趨勢。例如,根據性能度量的歷史記錄,你可以判斷性能比以前更好了還是更差了。此外,建立性能基線,基于此基線度量未來性能情況也是重要功能,這種功能只有存儲了歷史性能數據才可能實現。
成本和支持。數據庫性能工具的成本也因工具類型的不同而差異很大,供應商及其使用的報價方式都有很大差異。一些異構工具供應商按基礎工具收費,而且管理不同的數據庫類型要單獨收費。還有的廠商基于管理的實例大小報價,也有的按使用產品時間按年計費。支持服務通常是7*24在線支持或電話支持。選擇支持隨時電話響應的供應商是非常明智的決定。
一旦你理解了不同數據庫性能管理工具的核心需求和功能,下一步就是了解每種數據庫工具領域中排行靠前的供應商和他們提供的數據庫性能管理產品。