1. 程式人生 > >不同DBA對資料庫做優化的總體思路和侷限性

不同DBA對資料庫做優化的總體思路和侷限性

    在DBA的工作當中,資料庫的調優應該是最艱難的任務了,它不同於資料庫的規劃、安裝配置、備份恢復等工作,這些工作都是熟能生巧的任務,而且很容易確定工作什麼時候會結束。但優化則不同,它體現的是對計算機系統徹底的瞭解、對理論知識和實際操作徹底的掌握。而且優化工作是很難在短時間內確定結果的。
    不同的角色(不同的DBA)對資料庫優化的思路有很大區別,在這裡我把它們分為資料庫DBA和基於資料庫應用的專案DBA。前者即售後工程師,後者即專案組內的DBA或者產品DBA。售後工程師們到達現場之後一般不需要與任何人溝通什麼,除了登陸資料庫的許可權資訊,他們的優化步驟基本是固定的:
1.要許可權:
2.登陸資料庫察看當前系統壓力(memory、cpu、io、disk、network)
3.取資料庫日誌,如果有必要還會取作業系統日誌
4.在問題時段(或者是壓力大的時間段)生成快照,獲得性能分析依據
5.根據以上內容給出優化方案
6.結束
售後工程師現場優化的優點如下:
1.專業有深度,能夠在資料庫例項層面的調整給出完善的方案且可以直接實施。比如系統經過一段時間的執行,暴露出了資料庫和作業系統最初的一些引數的設定存在問題。
2.龐大的技術支援團隊作後盾,任何不涉及應用調整方面的效能問題,理論上都可以徹底解決。
售後工程師現場優化缺點:
1.費用太高。都是按小時計費
2.能夠做的工作很有限。效能問題90%以上都是需要通過調整應用來解決的,而售後工程師在這方面只能給出一些非常籠統的解決辦法,沒有可操作性
3.優化效果很難保證。效能調整是一個需要持續調整和觀察的過程,不可能一次結束,售後往往不能夠跟蹤到底。他們的最終成果一般都是一份文件而且。此外由於onsite service太過昂貴,企業一般只有在萬不得已時才請他們一次,而往往結果並不能令人滿意。
    跟隨在專案組當中的或者是產品的DBA往往需要了解更多的知識和資訊,他們的優化工作絕對不體現在技術本身,更不能僅僅侷限於某一個產品的效能提升,誰能夠巨集觀的考慮效能問題,誰就能夠獲得越大的成功。他們做優化的優點是能夠真正的完成優化任務。缺點是太累,水平提升到一定程度以後都拜拜了。