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