SQL Server 根據(jù)訪問歷史日志自動分析并提供優(yōu)化策略
性能調(diào)優(yōu)(如何把數(shù)據(jù)庫調(diào)到最優(yōu)化)以及性能評定(就是如何讓我知道我的數(shù)據(jù)庫調(diào)整到了最優(yōu)化)這兩件事對于大部分的DBA來說都是非常痛苦的事情。SQL Server是否能夠根據(jù)訪問歷史日志自動分析并提供優(yōu)化策略?在性能評定和調(diào)優(yōu)方面,微軟專家有沒有寶貴的經(jīng)驗(yàn)可以和中國用戶分享,或者有沒有其他相應(yīng)的工具可以幫助我們做這些工作。
【微軟專家】關(guān)于這個問題,2007年3月SQL Server 2005 SP 2發(fā)布了一個補(bǔ)丁,這個補(bǔ)丁里面有一個內(nèi)部的結(jié)構(gòu),它能夠搜集性能方面的一些數(shù)據(jù)。
這些信息是在數(shù)據(jù)庫中,有結(jié)構(gòu)能夠使得用戶獲取這些數(shù)據(jù),這個功能叫做動態(tài)管理視圖——DMV。在SP2中,我們提供的是一些報(bào)表,這些報(bào)表能夠幫助你來發(fā)現(xiàn)一些類型的查詢。比如說最慢的查詢是什么?比如說最消耗CPU的10個查詢是什么?比如說IO系統(tǒng)用的最多的10個查詢是什么?這些報(bào)表是用一個圖形的界面呈現(xiàn)出來的,而且這些信息都是在你進(jìn)行操作時獲取下來的,通過報(bào)表的形式呈現(xiàn)給你,你可以進(jìn)行分析。這些報(bào)表給你的界面是可以讓你單擊這些報(bào)表時,它可以給你顯示出這些查詢計(jì)劃是什么?如果你能夠理解這些查詢計(jì)劃的話,你就能夠明白造成一個查詢性能不好的原因是什么。這一功能設(shè)計(jì),數(shù)據(jù)搜集的過程是一個非常輕盈的過程,把對在線操作的影響盡可能減到非常小的程度。
很多用戶都把這一功能用到了他們的生產(chǎn)系統(tǒng)中,比如有一個客戶,大家原來是使用SQL Server 2000,后來他們升級到了SQL Server 2005。在以前DBA的工作都比較的被動,這是什么意思呢?比如說查詢慢了,用戶告訴他們慢了,他們就需要去研究最低層的原因是什么。到了SQL Server 2005時,他們用DMV,用這個報(bào)表,使得現(xiàn)在的工作方式變成了一種很主動的工作方式。舉一個例子,原來的查詢可能需要運(yùn)行五秒種,現(xiàn)在運(yùn)行七、八秒了。它可以設(shè)定一個觸發(fā)器,比如存儲過程突然慢下去了,觸發(fā)器就會收到一個通知,告訴DBA慢了。他就可以調(diào)查研究,造成性能衰減的原因是什么,在用戶找到他們之前,他們就可以把這個問題解決掉了。從被動的工作方式變成了一種主動的工作方式。
往前看,在未來,我們將繼續(xù)在這些技術(shù)領(lǐng)域進(jìn)行投資。使得對于性能的調(diào)試變得更加的簡單,使DBA的工作也變得更簡單一些。一個DBA可以同時管理更多的數(shù)據(jù)庫,也讓用戶的一些誤操作以及其他方面的一些影響減少到最小,這也是我們?yōu)槭裁赐ㄟ^努力使得我們從競爭對手之中脫穎而出,同時也是我們希望達(dá)到的一個目標(biāo)。
團(tuán)隊(duì)使用方面,也是我們下一個要發(fā)布的版本中,他們也在做很多的工作,使得查詢變得更快。并且維護(hù)起來也更加容易。如果在數(shù)據(jù)庫中有一些丟失的信息,我們也可以進(jìn)行恢復(fù),讓用戶獲得更大程度的自動化的方式,用自動的方式來解決很多的問題。這樣使得我們最終為客戶提供價值所在,這也是我們的產(chǎn)品區(qū)分于其他競爭對手的一種方式。
SP2的這個性能類似于汽車上的性能儀表板,這個是和SQL Server的結(jié)果呈現(xiàn)連在一起的,是用這個當(dāng)做儀表板,用結(jié)果呈現(xiàn)來把數(shù)據(jù)呈現(xiàn)出來。
【小知識】DMV本身是一個視圖,它本身并不會運(yùn)行或者不運(yùn)行,這個數(shù)據(jù)積累是一直在發(fā)生的,你只需要有一個外部的功能、程序來獲取這個數(shù)據(jù)。在你正常運(yùn)行時,這些數(shù)據(jù)搜集是一直在發(fā)生的。
相關(guān)文章:
1. SQL Server全文檢索簡介2. Docker部署Mysql集群的實(shí)現(xiàn)3. 在SQL Server 2005修改存儲過程4. MySQL 的啟動和連接方式實(shí)例分析5. Oracle 9i輕松取得建表和索引DDL語句6. 服務(wù)器Centos部署MySql并連接Navicat過程詳解7. idea連接SQL Server數(shù)據(jù)庫的詳細(xì)圖文教程8. Oracle中pivot函數(shù)圖文實(shí)例詳解9. SQL SERVER數(shù)據(jù)庫開發(fā)之存儲過程的應(yīng)用10. Oracle?Users表空間重命名問題解決
