SQL Server 根據訪問歷史日志自動分析并提供優化策略
性能調優(如何把數據庫調到最優化)以及性能評定(就是如何讓我知道我的數據庫調整到了最優化)這兩件事對于大部分的DBA來說都是非常痛苦的事情。SQL Server是否能夠根據訪問歷史日志自動分析并提供優化策略?在性能評定和調優方面,微軟專家有沒有寶貴的經驗可以和中國用戶分享,或者有沒有其他相應的工具可以幫助我們做這些工作。
【微軟專家】關于這個問題,2007年3月SQL Server 2005 SP 2發布了一個補丁,這個補丁里面有一個內部的結構,它能夠搜集性能方面的一些數據。
這些信息是在數據庫中,有結構能夠使得用戶獲取這些數據,這個功能叫做動態管理視圖——DMV。在SP2中,我們提供的是一些報表,這些報表能夠幫助你來發現一些類型的查詢。比如說最慢的查詢是什么?比如說最消耗CPU的10個查詢是什么?比如說IO系統用的最多的10個查詢是什么?這些報表是用一個圖形的界面呈現出來的,而且這些信息都是在你進行操作時獲取下來的,通過報表的形式呈現給你,你可以進行分析。這些報表給你的界面是可以讓你單擊這些報表時,它可以給你顯示出這些查詢計劃是什么?如果你能夠理解這些查詢計劃的話,你就能夠明白造成一個查詢性能不好的原因是什么。這一功能設計,數據搜集的過程是一個非常輕盈的過程,把對在線操作的影響盡可能減到非常小的程度。
很多用戶都把這一功能用到了他們的生產系統中,比如有一個客戶,大家原來是使用SQL Server 2000,后來他們升級到了SQL Server 2005。在以前DBA的工作都比較的被動,這是什么意思呢?比如說查詢慢了,用戶告訴他們慢了,他們就需要去研究最低層的原因是什么。到了SQL Server 2005時,他們用DMV,用這個報表,使得現在的工作方式變成了一種很主動的工作方式。舉一個例子,原來的查詢可能需要運行五秒種,現在運行七、八秒了。它可以設定一個觸發器,比如存儲過程突然慢下去了,觸發器就會收到一個通知,告訴DBA慢了。他就可以調查研究,造成性能衰減的原因是什么,在用戶找到他們之前,他們就可以把這個問題解決掉了。從被動的工作方式變成了一種主動的工作方式。
往前看,在未來,我們將繼續在這些技術領域進行投資。使得對于性能的調試變得更加的簡單,使DBA的工作也變得更簡單一些。一個DBA可以同時管理更多的數據庫,也讓用戶的一些誤操作以及其他方面的一些影響減少到最小,這也是我們為什么通過努力使得我們從競爭對手之中脫穎而出,同時也是我們希望達到的一個目標。
團隊使用方面,也是我們下一個要發布的版本中,他們也在做很多的工作,使得查詢變得更快。并且維護起來也更加容易。如果在數據庫中有一些丟失的信息,我們也可以進行恢復,讓用戶獲得更大程度的自動化的方式,用自動的方式來解決很多的問題。這樣使得我們最終為客戶提供價值所在,這也是我們的產品區分于其他競爭對手的一種方式。
SP2的這個性能類似于汽車上的性能儀表板,這個是和SQL Server的結果呈現連在一起的,是用這個當做儀表板,用結果呈現來把數據呈現出來。
【小知識】DMV本身是一個視圖,它本身并不會運行或者不運行,這個數據積累是一直在發生的,你只需要有一個外部的功能、程序來獲取這個數據。在你正常運行時,這些數據搜集是一直在發生的。
相關文章:
