你們好,歡迎來到性能調優培訓的最後一個月。在過去的5個月裏,咱們談了SQL Server的各類性能相關的話題,包括性能調優的技術和問題。html
但當在你面前,SQL Server沒有按你預想的運行時,你會怎麼辦?爲了幫你處理這個狀況,今天咱們會談到下性能監控技術,下週咱們會詳細談到SQL Server裏所謂的等待統計(Wait Statistics)。如今開始咱們的性能監控。工具
不少人坐在他們的SQL Server前,知道它的性能很是差,殊不知道如何找出潛在的根源,也不知道如何解決它。對這個問題,個人答案很是簡單:監控並收集當前狀況的信息,和你的基線(baseline)比較,識別出最突出的性能瓶頸。是的,你沒聽錯:你須要創建基線來識別性能問題,否則的話就是在瞎猜。下圖顯示了在創建的基線上,在SQL Server裏,一個很是簡單的識別並解決性能問題的方法。性能
這個方法的思路很是簡單。在第1步裏你須要收集一些SQL Server的關鍵指標。這些關鍵指標做爲你的初始基線。在下一部分我會談下你應該收集的關鍵指標。在你創建了你的基線後,你能夠開始在抓取的數據裏識別最多見的性能問題。在下一部分你會看到,有一些免費的工具,能夠用它來自動完成這個操做。測試
最後,你一次只作一個修改來解決識別出來的性能問題。你沒有看錯:對你要解決的識別出來的性能問題,你應該只應用一個修改到你的SQL Server。若是一次修改太多,你就不能確認,哪一個修改解決了你的性能問題,還有哪一個修改損害了你的性能。這對性能故障排除很是重要!spa
在你應用你的改變後,你能夠再次測試下你的關鍵指標,和你創建的基線來驗證下你的修改是好仍是壞。在這一步你收集的心的關鍵指標,能夠做爲你新的基線。很簡單,是否是?惟一你要意識到的是你要定義一個放行準則(exit criteria)。在SQL Server裏,你能夠反覆經過這個循環。所以你要定義對於你的SQL Server,何時的性能纔是「足夠好」。code
當咱們討論創建基線時,總會有個問題,你應該包含哪些關鍵指標?對於SQL Server,有太多不一樣的相關性能計數器,SQL Server自己也對它的健康情況提供不少相關數據的不一樣DMV。由於不想讓事情變得複雜,在第一步我只抓取一些東西來得到SQL Server健康狀態的大體狀況。htm
如今我想談下這些性能相關的計數器,下週咱們會詳細談下等待統計和I/O延遲統計信息。爲SQL Server抓取相關的性能計數器很是簡單:你使用微軟提供的免費工具PAL。blog
PAL工具爲SQL Server提供專門的模板,在模板裏你能夠找到針對SQL Server的全部相關的性能計數器。能夠經過設定新的所謂的數據收集(Data Collection)來直接導入模板文件到Windows性能監視器。所以你能夠在1分鐘內就能夠配置好SQL Server相關的性能計數器!部署
PAL工具另外一個優勢是:用它你能夠自動分析Windows性能監視器抓取的.blg文件。做爲輸出,你會獲得一個很大的HTML報表,告訴你在哪方面你可能有性能問題。下圖來自這個報表的簡單圖例。get
當我進行性能調優時,第一步老是配置Windows性能監控數據收集,而後我會對它分析好幾個小時。專一於分析,把力氣花在這上面是個很是好的想法。
今天咱們詳細談了針對可能的性能問題,你如何監控你的SQL Server。這裏最重要的一點是你要創建一個基線的事實。有了基線,就很容易判斷部署的修改是好仍是壞。沒有基線,你只能瞎猜修改是否是有用的,仍是沒用的。
在第2部分咱們介紹了微軟提供的免費工具PAL。使用PAL工具很容易在Windows性能監視器裏配置一個數據收集,用來抓取SQL Server性能相關的計數器。另外你也能夠用這個工具來自動分析抓取的性能計數器。下週咱們會詳細看下SQL Server裏等待和I/O延遲統計信息。
請繼續關注!