SQL Server Profiler 是一個功能豐富的界面,用于創(chuàng)建和管理跟蹤并分析和重播跟蹤結(jié)果。 事件保存在一個跟蹤文件中,稍后試圖診斷問題時,可以對該文件進行分析或用它來重播特定的一系列步驟。
如果你的數(shù)據(jù)庫應(yīng)用系統(tǒng)中,存在有大量表,視圖,索引,觸發(fā)器,函數(shù),存儲過程,sql語句等等,又性能低下,而苦逼的你又要對其優(yōu)化,那么你該怎么辦?哥教你,首先你要知道問題出在哪里?如果想知道問題出在哪里,并且找到他,咱們可以借助本文中要講述的性能檢測工具--sql server profiler(處在sql安裝文件--性能工具--sql server profiler)
如果知道啦問題出現(xiàn)在哪里,如果你又是絕世高手,當然可以直中要害,寫段代碼給處理解決掉,但是如果你不行,你做不到,那么也無所謂,可以借助哥的力量給你解決問題。哥給你的武功的秘訣心法是---數(shù)據(jù)庫引擎優(yōu)化顧問(處在sql安裝文件--性能工具--數(shù)據(jù)庫引擎優(yōu)化顧問)
sql server profiler功能
此工具比柯南還柯南,因為他能檢測到數(shù)據(jù)庫中的一舉一動,即便你不動他,他也在監(jiān)視你,他很賤的。他不但監(jiān)視,還監(jiān)視的很詳細,有多詳細一會再說,還把監(jiān)視的內(nèi)容記錄到數(shù)據(jù)庫或者是文件中,給你媳婦告狀說你把數(shù)據(jù)庫哪里的性能搞的多么不好,不過他也會把好的給你記錄下來,好與不好這當然需要你來分析,其實他也是個很2的柯南。
數(shù)據(jù)庫引擎優(yōu)化顧問功能
此武功,乃上乘武功。像張無忌的乾坤大挪移,先是接受sql server profiler檢測出來的sql,視圖,存儲過程,數(shù)據(jù)結(jié)構(gòu)等等,然后他再自己分析,然后再在懷中轉(zhuǎn)兩圈,感覺自己轉(zhuǎn)的差不多啦,就給拋出來個威力更炫,更好的索引,統(tǒng)計,分區(qū)等等建議信息。讓你承受不住,happly致死。。下面聽哥給你先講講咱們的很2柯南。
sql server profiler的使用
1、打開系統(tǒng)主菜單--sqlserver幾---性能工具--->>sql server profiler;笨樣兒,找到?jīng)]?哥等你會兒,給你上張打開他后的圖,讓你看看。。
2、然后文件--新建跟蹤--顯示跟蹤屬性窗口
3、首先那個select%是個篩選監(jiān)測的TextData。那個%是個通配符,他的意思就是篩選select開口的語句。當然這你自己可以隨便定義,如update%,delete%....。
把那個排除不包含值的行也給帶上,然后確定,運行。然后在數(shù)據(jù)庫中運行一句select。你會發(fā)現(xiàn)他檢測到啦。
4、每列以此向右,從EventClass開始,我給你講講都是什么。
事件分類,申請了語句,應(yīng)用程序名稱,操作系統(tǒng)用戶,數(shù)據(jù)庫用戶,cpu占用率,讀數(shù)據(jù)庫次數(shù),寫數(shù)據(jù)庫次說,執(zhí)行腳本用時,應(yīng)用程序進程號,開始時間,結(jié)束時間等。
事件選擇,你就把鼠標放上去,他下面有中文的注釋。自己好好看看,然后根據(jù)你自己的需要把事件勾選上來。
5、然后文件-->>另存為,可以把這些監(jiān)測到的數(shù)據(jù)保存為文件,或數(shù)據(jù)表。
分析:
1.查找持續(xù)時間最長的查詢
一般情況下,最長查詢時間的查詢語句就是最影響性能的原因存在。它不僅占用數(shù)據(jù)庫引擎大量的時間,還浪費系統(tǒng)資源,還影響數(shù)據(jù)庫應(yīng)用系統(tǒng)的交互速度。再對數(shù)據(jù)用應(yīng)用系統(tǒng)進行優(yōu)化時,先找出他,對其優(yōu)化,在創(chuàng)建跟蹤時,勾上TSQL-SQL:BatchCompleted.跟Stored Procedures-RPC:completed。這樣就能找出來這個最長時間查詢?nèi)缓髮ζ溥M行分析優(yōu)化。
select TextData,Duration,CPU from <跟蹤的表>where EventClass=12 -- 等于12表示BatchCompleted事件and CPU<(0.4*Duration) --如果cpu的占用時間,小于執(zhí)行sql語句時間的40%,說明該語句等待時間過長
2.最占用系統(tǒng)資源的查詢
就是占用cpu時間,跟讀寫IO的次數(shù)。建議事件包含Connect、Disconnect、ExistingConnection、SQL:BatchCompleted、RPC:completed,列包含writes,reads,cpu。
3.檢測死鎖
在訪問量,并發(fā)量都很大的數(shù)據(jù)庫中,如果設(shè)計稍不合理,就有可能造成死鎖,給系統(tǒng)性能帶來影響。事件包含:RPC:Starting、SQL:BatchStarting、Lock:DeadLock(死鎖事件)、Lock:DeadLockChaining(死鎖的事件序列)。
使用數(shù)據(jù)庫引擎優(yōu)化顧問分析解決數(shù)據(jù)庫性能
打開系統(tǒng)主菜單--sqlserver幾---性能工具--->>數(shù)據(jù)庫引擎優(yōu)化顧問,界面如下
打開之后,你在上一個工具中保存的的文件,你就在這里的工作負荷中選文件,表就選表。選后別急。
把要分析的數(shù)據(jù)庫跟數(shù)據(jù)庫的表選上,也就是下面的用于工作負荷分析的數(shù)據(jù)庫選擇,跟下面的要優(yōu)化的數(shù)據(jù)庫和表,慢慢扣,把他選對。
然后選則你想要的優(yōu)化選項
根據(jù)需要,選上,高級選項里面通?梢阅J。確定。。
然后點左上角有一個開始分析。
分析完成