SqlServer性能检测和优化工具使用详细
工具概要? ??
? ? 如果你的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中,存在有大量表,視圖,索引,觸發(fā)器,函數(shù),存儲(chǔ)過(guò)程,sql語(yǔ)句等等,又性能低下,而苦逼的你又要對(duì)其優(yōu)化,那么你該怎么辦?哥教你,首先你要知道問(wèn)題出在哪里?如果想知道問(wèn)題出在哪里,并且找到他,咱們可以借助本文中要講述的性能檢測(cè)工具--sql server profiler(處在sql安裝文件--性能工具--sql server profiler)
??? 如果知道啦問(wèn)題出現(xiàn)在哪里,如果你又是絕世高手,當(dāng)然可以直中要害,寫(xiě)段代碼給處理解決掉,但是如果你不行,你做不到,那么也無(wú)所謂,可以借助哥的力量給你解決問(wèn)題。哥給你的武功的秘訣心法是---數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn)(處在sql安裝文件--性能工具--數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn))
sql server profiler功能?
? ? 此工具比柯南還柯南,因?yàn)樗軝z測(cè)到數(shù)據(jù)庫(kù)中的一舉一動(dòng),即便你不動(dòng)他,他也在監(jiān)視你,他很賤的。他不但監(jiān)視,還監(jiān)視的很詳細(xì),有多詳細(xì)一會(huì)再說(shuō),還把監(jiān)視的內(nèi)容記錄到數(shù)據(jù)庫(kù)或者是文件中,給你媳婦告狀說(shuō)你把數(shù)據(jù)庫(kù)哪里的性能搞的多么不好,不過(guò)他也會(huì)把好的給你記錄下來(lái),好與不好這當(dāng)然需要你來(lái)分析,其實(shí)他也是個(gè)很2的柯南。
數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn)功能?
? ? 此武功,乃上乘武功。像張無(wú)忌的乾坤大挪移,先是接受sql server profiler檢測(cè)出來(lái)的sql,視圖,存儲(chǔ)過(guò)程,數(shù)據(jù)結(jié)構(gòu)等等,然后他再自己分析,然后再在懷中轉(zhuǎn)兩圈,感覺(jué)自己轉(zhuǎn)的差不多啦,就給拋出來(lái)個(gè)威力更炫,更好的索引,統(tǒng)計(jì),分區(qū)等等建議信息。讓你承受不住,happly致死。。下面聽(tīng)哥給你先講講咱們的很2柯南。
sql server profiler的使用
打開(kāi)系統(tǒng)主菜單--sqlserver幾---性能工具--->>sql server profiler;笨樣兒,找到?jīng)]?哥等你會(huì)兒,給你上張打開(kāi)他后的圖,讓你看看。。
然后文件--新建跟蹤--顯示跟蹤屬性窗口
首先那個(gè)select%是個(gè)篩選監(jiān)測(cè)的TextData。那個(gè)%是個(gè)通配符,他的意思就是篩選select開(kāi)口的語(yǔ)句。當(dāng)然這你自己可以隨便定義,如update%,delete%....。
把那個(gè)排除不包含值的行也給帶上,然后確定,運(yùn)行。然后在數(shù)據(jù)庫(kù)中運(yùn)行一句select。你會(huì)發(fā)現(xiàn)他檢測(cè)到啦。
每列以此向右,從EventClass開(kāi)始,我給你講講都是什么。
事件分類(lèi),申請(qǐng)了語(yǔ)句,應(yīng)用程序名稱,操作系統(tǒng)用戶,數(shù)據(jù)庫(kù)用戶,cpu占用率,讀數(shù)據(jù)庫(kù)次數(shù),寫(xiě)數(shù)據(jù)庫(kù)次說(shuō),執(zhí)行腳本用時(shí),應(yīng)用程序進(jìn)程號(hào),開(kāi)始時(shí)間,結(jié)束時(shí)間等。
事件選擇,你就把鼠標(biāo)放上去,他下面有中文的注釋。自己好好看看,然后根據(jù)你自己的需要把事件勾選上來(lái)。
然后文件-->>另存為,可以把這些監(jiān)測(cè)到的數(shù)據(jù)保存為文件,或數(shù)據(jù)表。
分析:
1.查找持續(xù)時(shí)間最長(zhǎng)的查詢
一般情況下,最長(zhǎng)查詢時(shí)間的查詢語(yǔ)句就是最影響性能的原因存在。它不僅占用數(shù)據(jù)庫(kù)引擎大量的時(shí)間,還浪費(fèi)系統(tǒng)資源,還影響數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的交互速度。再對(duì)數(shù)據(jù)用應(yīng)用系統(tǒng)進(jìn)行優(yōu)化時(shí),先找出他,對(duì)其優(yōu)化,在創(chuàng)建跟蹤時(shí),勾上TSQL-SQL:BatchCompleted.跟Stored Procedures-RPC:completed。這樣就能找出來(lái)這個(gè)最長(zhǎng)時(shí)間查詢?nèi)缓髮?duì)其進(jìn)行分析優(yōu)化。
select TextData,Duration,CPU from <跟蹤的表> where EventClass=12 -- 等于12表示BatchCompleted事件 and CPU<(0.4*Duration) --如果cpu的占用時(shí)間,小于執(zhí)行sql語(yǔ)句時(shí)間的40%,說(shuō)明該語(yǔ)句等待時(shí)間過(guò)長(zhǎng)2.最占用系統(tǒng)資源的查詢
就是占用cpu時(shí)間,跟讀寫(xiě)IO的次數(shù)。建議事件包含Connect、Disconnect、ExistingConnection、SQL:BatchCompleted、RPC:completed,列包含writes,reads,cpu。
3.檢測(cè)死鎖
在訪問(wèn)量,并發(fā)量都很大的數(shù)據(jù)庫(kù)中,如果設(shè)計(jì)稍不合理,就有可能造成死鎖,給系統(tǒng)性能帶來(lái)影響。事件包含:RPC:Starting、SQL:BatchStarting、Lock:DeadLock(死鎖事件)、Lock:DeadLockChaining(死鎖的事件序列)。
使用數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn)分析解決數(shù)據(jù)庫(kù)性能
打開(kāi)系統(tǒng)主菜單--sqlserver幾---性能工具--->>數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn),界面如下
?
?
打開(kāi)之后,你在上一個(gè)工具中保存的的文件,你就在這里的工作負(fù)荷中選文件,表就選表。選后別急。
把要分析的數(shù)據(jù)庫(kù)跟數(shù)據(jù)庫(kù)的表選上,也就是下面的用于工作負(fù)荷分析的數(shù)據(jù)庫(kù)選擇,跟下面的要優(yōu)化的數(shù)據(jù)庫(kù)和表,慢慢扣,把他選對(duì)。
然后選則你想要的優(yōu)化選項(xiàng)
根據(jù)需要,選上,高級(jí)選項(xiàng)里面通常可以默認(rèn)。確定。。
然后點(diǎn)左上角有一個(gè)開(kāi)始分析。
分析完成
?
?
說(shuō)到這里
我感覺(jué)這本武功絕學(xué)你已經(jīng)擁有啦7成功力,以后就看你們自己的造化啦。哥哥囑托你多用,勤用,用腦,別用力,多喝六個(gè)核桃腦白金,開(kāi)蓋不要用牙咬。
哥哥去啦,生亦何歡,死亦何苦。。
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的SqlServer性能检测和优化工具使用详细的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 透过字节码分析java基本类型数组的内存
- 下一篇: 【BZOJ】1798: [Ahoi200