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