準備,就位,出發!SQL Server性能調整清單
作者: Jeremy Kadlec Edgewood Solutions
我需要做什么?太多了,我從哪里開始?我下一步該做什么?哇,我的SQL Server起來了!如果你從一開始就不知道要到哪里去,并且異常中斷了SQL Server的運行,那么你做到了。看看這篇如何獲得高性能SQL Server的性能調整清單吧。
SQL Server性能調整清單
準備
當你開始解決一個現有的性能調整問題或者從一個新的系統開始,非常期望得到高性能,那么花些時間在計劃和分析如何達到項目目標吧。確保整個團隊都理解了SQL Server現在正在做什么,它將會作什么,以及它以后應該如何做。
有關團隊
•用正確的技術知識組建一個有才華的團隊。
•確保技術團隊都理解每個人的職責對組織的影響。
•為團隊培訓預備時間(會議、用戶群、非正式的、自我節奏調節、教室等)
•籌備一個擁有技術書籍和電子資源的圖書館。
•建立一個用于測試的沒有附加任何條件和強加的結果的沙盤
•不要忘記當任務完成的時候對團隊進行獎勵
實現
•以Web、在線事務處理、在線分析處理、移動和批處理應用程序的方式為SQL Server建立一套實際業務和技術方面的需求。
•按照可交付的和時間框架來為團隊安排現實的期望。
•確保團隊對當前和未來的性能需求有個明確和準確的理解,避免任何嚴重影響未來的意外出現。
•盡可能地做到細微的程度,努力避免存在沒有涉及的問題。不幸的是,俗話說:“the devil is in the details(魔鬼隱藏于細節中)”,這句話是相當準確的。
•評估可用來解決高性能問題的時間,并把它與完成剩余的日常任務所需的時間相比,不要害怕對實際的時間結構進行溝通。
•討論花大量時間來充分開發一個合適的系統來達到高性能與沖刺開發然后將一個需要大量維護的系統推上去相比,哪一個更好。
•定義SQL Server的正常運行時間,然后確定對達到這個正常運行時間所需的成本與性能需求的期望值。
•從技術和業務兩個角度提出問題,理解系統期望的修改方式,以及在1年、3年、5年之后的增長。
•在硬件平臺布置好之前,列出容量需求計劃。
•讓整個團隊對以下問題達成一致:每天、每周、每月或者每季度基礎上的SQL Servers維護。
就位
一旦你和你的團隊理解了需求,是時候展示你們的IT技能了。創造性地思考平衡SQL Server自帶功能、第三方產品,以及你們自己的開發之間的關系。
停下來思考
•分析需求,然后畫出應用程序中每個單獨組件的草圖。
•在時間表上列出正式或者非正式的團隊成員會議,與他們探討有關功能性、靈活性和純粹速度方面的潛在的具有破壞性的想法。
•想想這個環境中其他應用程序的經歷,或者是以前的經歷,做出計劃,不僅要避免這些問題,還要應用程序中那些地方是最強的。
向成功進發
•建立硬件平臺需要滿足各個不同數據庫組件有關靈活性的需求,用以滿足其他額外的需求。
•建立硬件平臺來滿足不同的數據庫組件對靈活性的需求,以滿足額外的需求。
•開發數據庫對象、中間件應用程序,以及眼睛可以看到的前臺來為并行的用戶提供高級別的高性能。
•對應用程序中的每個組件都進行壓力測試,測試的時候與應用程序的其他部分隔離開,確保每個組件優化得都非常合適,然后再對整個應用程序進行壓力測試。
•根據壓力測試結果,開始優化查詢以改善性能,然后重復進行壓力測試以確保性能的有效性。
•為用戶構建一個培訓系統來教會他們如何按照設計的目標來使用這個系統,并對一部分系統用戶進行負載測試,獲得基線,在產品發布之前。
•最后在發布應用軟件之前完成文檔。讓IT業內人士——不是銷售冠軍——來簽收,并且提出有價值的參考意見,這些意見會在6個月之后,進行了另外的100個項目之后,需要添加新的功能的時候非常有用。
前進!
一旦設計和開發完成了,要確保應用程序不會迷失在混亂中。注意,它需要在很長的一段時間之內都會按照預想的情況運行下去。
打開閘門
•讓小部分用戶在系統上運行這個應用程序來驗證性能。然后按照常規的進度表開始在系統上添加用戶。
•打開SQL Server安全保衛措施,防止意外的變化卷入平靜的環境,并產生負面的影響。
•建立變化管理進程,對系統的變化進行合適的管理,確保它能夠回滾到原先的狀態。
•檢查服務器進度表,防止多個應用程序同時開啟導致服務器停頓下來,以及在一個進城執行的時候,沒有其他的進程執行。
注意
•每天或者每星期分配一點時間使用自帶的工具(SQL Server Profiler, Performance Monitor, Index Tuning Wizard等)監控SQL Server。當SQL Server出現性能問題的時候,不應該將監控多次保存。
•構建內部可以輕松訪問的腳本,當你遇到鎖定和阻塞的問題的時候,或者是需要監控業務相關進程,例如用戶表中的標記,或者在清單控制進程中的批處理的時候。具有這方面的系統知識會增強你的能力。
•在一般的基礎上捕捉性能因素,理解并測量性能。
開始散布消息
•召開一個經驗交流會議來加強項目中積極的方面,判斷需要改進的領域,并且建立起實現這些項目的計劃。
•計劃出”午飯交流時間”以便團隊成員之間可以共享知識。
《SQL Server清單》為你提供了一步一步的執行、調整和管理你的SQL Server 的建議。
(t114)