這次上課跟上次上課最大的不同點就是切入的角度不同,上次是很單純的從現存的資料庫去進行一些外部的調整,而這次則是從資料庫開始規劃時就進行考慮,有了這樣的基礎再來進行效能的調整,這也是為什麼我這次上課上的比較辛苦的主要因素,就算我事前已經做了準備,但是當上課時要馬上活用這些知識時就會遇到些困難,不過經過連續這幾天的惡補,我已經大抵上把一些在課程中遇到的問題給解決了,可以慢慢的開始把一些上課的心得與想法給分享出來,不過由於這次的內容非常多,再加上我自己念書的一些心得,所以我會分成幾個部分來寫,同時也會搭配上系統管理的角度來進行思考。當然由於我並不是資料庫本身就非常在行的工程師,所以我寫的想法與觀念未必是完全正確的,如果有錯的地方再麻煩各位幫忙指正,讓小弟我可以做出修正。

Step1 產生效能調整計畫
一般來說要進行資料庫主機通常是出問題時才會出現需要進行效能調整,而此時就需要進行環境的通盤了解進而產出效能調整計畫,這部分通常也是非常花時間的,因為問題未必會重複出現,而且問題出現的時間也不一定會固定,因此必須要透過一些方式去蒐集資訊,透過這樣的方式蒐集到足夠的資訊方可找出發生問題的原因然後進行資料庫效能調整,正所謂謀定而後動,所以我將整個產出效能調整計畫的過程切成幾個步驟,其中並包括一些資料蒐集的觀察指標,透過這樣的流程希望能夠產出正確的效能調整計畫。
1.蒐集問題
◎USER問題蒐集與了解
這部分非常重要,一般來說也是需要進行效能調整的主因,其中最重要的幾個資訊在與user溝通時是必須注意的。以下用條列式的方式列出來:
*使用什麼功能時發生問題
*發生問題的時間點
*問題的狀況描述
*問題是否重複出現
*user是否可以重現問題
透過與user溝通會較容易找出問題發生的時間、狀況與原因等,如果user能夠重現問題則對我們在進行除錯會有更大的幫助。如果要確認自己對問題的認知是否正確,可在了解問題後用最少的字數描述一次給user聽,以確認自己對問題的了解程度。
◎System Log 的蒐集
以下列出幾個系統記錄蒐集與觀察的指標,同時要確認當這些指標狀態發生問題的原因是與Sql Server有關。
*Disk I/o
*Cpu
*記憶體使用狀況
*Network
*系統日誌
一般來說以上指標會發生問題的原因未必會與資料庫有關,因此需要針對這部份去進行了解,以便確認資料庫主機的運行狀態。
◎資料庫狀態蒐集工具 – SqlDiag (MS SQL SERVER)
SQLDiag最初是在SQL Server 7.0中引入的,它是一個非常方便的工具可以用來監控資料庫伺服器中出現的問題。這個命令列工具可以為微軟的客戶提供必需的資訊,在運行時,SQLDiag可以將不同的SQL Server工具提供的資料輸出到一個文字檔中,以便於您閱覽,該文字檔包含了配置、資料庫和錯誤日誌的資訊。
在SQL Server 2005中,您可以將 SQLDiag設定為一個服務,也可以將它當作一個命令列工具。-摘錄自微軟網站
這工具最厲害的地方是可以將蒐集的資料透夠各種指標的時間圖去進行搭配,例如在執行Sql某樣工作時造成cpu使用率過高,如此一來就很方便去進行調整。
2.了解資料庫結構 – 資料表設計
這部分是我花最多時間的部份,坦白說我到現在都還在K這方面的書,因為這部分極有可能就是影響資料庫效能的主因,而通常資料庫的管理人員遇到這部分的問題也會非常頭大,因為當資料庫結構需要進行調整時,通常前端程式也都需要進行調整,甚至使用者習慣也得跟著進行改變;而有些TABLE的設計更是為了配合USER的需求而規劃甚至去影響效能,此時在效能與使用者需求的問題兩難間實在不容易取得平衡,這部分我會在後面再提出來,這也是這次這堂課老師很強調的部份。但重點是要對資料庫進行調整,就必須要對資料庫架構進行了解,甚至對TABLE內容與程式的功能也都必須弄清楚,如此才能做出正確的判斷。
3.前端程式與資料庫間的關係
同樣列出幾個要注意的點給各位參考
*連接資料庫的方式
*功能與資料庫規劃的關係
*網路狀態的分析
這部分就是在判斷調整成本一個很重要的依據,一般來說在效能調整時我們會非常注意成本的控制,利用最少的成本做出最佳的調整是我們所追求的目標,因此我們透過了解前端程式連接資料庫的方式、了解那些功能所花費的成本甚至是網路狀況的分析去了解成本分配的狀況以進行調整。
以上就是一般在進行資料庫效能調整前置作業所需的步驟,透過這樣的步驟應該可以規劃出整個調整的計畫,看我寫了一堆,就知道這部分會花上不少時間,當然有經驗的DBA也許可以很快的抓出問題,但是實際上在整個調整的過程中通常會有數次不斷的修正,直到達成效能調整的目標。
在這邊要提醒設定效能調整的目標與控制效能調整的成本是兩個在效能調整時非常重要的工作,因為如此才不會陷入效能調整無盡的迴旋中。

待續…….
下一篇主題:資料庫架構分析與T-Sql優化 (希望寫的出來)

arrow
arrow
    全站熱搜

    紐士比 發表在 痞客邦 留言(0) 人氣()