大家好,歡迎來到性能調優培訓的最后一個月。在過去的5個月里,我們談了SQL Server的各種性能相關的話題,包括性能調優的技術和問題。
但當在你面前,SQL Server沒有按你預想的運行時,你會怎么辦?為了幫你處理這個情況,今天我們會談到下性能監控技術,下周我們會詳細談到SQL Server里所謂的等待統計(Wait Statistics)?,F在開始我們的性能監控。
讓我們建立一個基線!很多人坐在他們的SQL Server前,知道它的性能非常差,卻不知道如何找出潛在的根源,也不知道如何解決它。對這個問題,我的答案非常簡單:監控并收集當前情況的信息,和你的基線(baseline)比較,識別出最突出的性能瓶頸。是的,你沒聽錯:你需要建立基線來識別性能問題,不然的話就是在瞎猜。下圖顯示了在建立的基線上,在SQL Server里,一個非常簡單的識別并解決性能問題的方法。
這個方法的思路非常簡單。在第1步里你需要收集一些SQL Server的關鍵指標。這些關鍵指標作為你的初始基線。在下一部分我會談下你應該收集的關鍵指標。在你建立了你的基線后,你可以開始在抓取的數據里識別最常見的性能問題。在下一部分你會看到,有一些免費的工具,可以用它來自動完成這個操作。
最后,你一次只做一個修改來解決識別出來的性能問題。你沒有看錯:對你要解決的識別出來的性能問題,你應該只應用一個修改到你的SQL Server。如果一次修改太多,你就不能確認,哪個修改解決了你的性能問題,還有哪個修改損害了你的性能。這對性能故障排除非常重要!
在你應用你的改變后,你可以再次測試下你的關鍵指標,和你建立的基線來驗證下你的修改是好還是壞。在這一步你收集的心的關鍵指標,可以作為你新的基線。很簡單,是不是?唯一你要意識到的是你要定義一個放行準則(exit criteria)。在SQL Server里,你可以反復通過這個循環。因此你要定義對于你的SQL Server,什么時候的性能才是“足夠好”。
收集關鍵指標當我們討論建立基線時,總會有個問題,你應該包含哪些關鍵指標?對于SQL Server,有太多不同的相關性能計數器,SQL Server本身也對它的健康狀況提供很多相關數據的不同DMV。因為不想讓事情變得復雜,在第一步我只抓取一些東西來獲得SQL Server健康狀態的大致情況。
現在我想談下這些性能相關的計數器,下周我們會詳細談下等待統計和I/O延遲統計信息。為SQL Server抓取相關的性能計數器非常簡單:你使用微軟提供的免費工具PAL。
PAL工具為SQL Server提供專門的模板,在模板里你可以找到針對SQL Server的所有相關的性能計數器??梢酝ㄟ^設定新的所謂的數據收集(Data Collection)來直接導入模板文件到Windows性能監視器。因此你可以在1分鐘內就可以配置好SQL Server相關的性能計數器!
PAL工具另一個優點是:用它你可以自動分析Windows性能監視器抓取的.blg文件。作為輸出,你會得到一個很大的HTML報表,告訴你在哪方面你可能有性能問題。下圖來自這個報表的簡單圖例。
當我進行性能調優時,第一步總是配置Windows性能監控數據收集,然后我會對它分析好幾個小時。專注于分析,把力氣花在這上面是個非常好的想法。
小結今天我們詳細談了針對可能的性能問題,你如何監控你的SQL Server。這里最重要的一點是你要建立一個基線的事實。有了基線,就很容易判斷部署的修改是好還是壞。沒有基線,你只能瞎猜修改是不是有用的,還是沒用的。
在第2部分我們介紹了微軟提供的免費工具PAL。使用PAL工具很容易在Windows性能監視器里配置一個數據收集,用來抓取SQL Server性能相關的計數器。另外你也可以用這個工具來自動分析抓取的性能計數器。下周我們會詳細看下SQL Server里等待和I/O延遲統計信息。
請繼續關注!
新聞熱點
疑難解答