標籤:disco net text http 速度 資料 開始時間 nts 資料庫應用
原文:Sql效能偵查工具:Sql server profiler和最佳化工具:Database Engine Tuning Advisor
一、工具概要? ? 資料庫應用系統效能低下,需要對其進行最佳化,? ? 如果不知道問題出在哪裡,可以使用效能偵查工具sql server profiler。? ? 如果知道問題出在哪裡,卻不知道如何解決,可以使用Database Engine Tuning AdvisorDatabase Engine Tuning Advisor二、sql server profiler功能:檢測到資料庫中的所有操作,把監視的內容記錄到資料庫或者是檔案中。檔案--建立跟蹤--顯示跟蹤屬性視窗
首先那個select%是個篩選監測的TextData。那個%是個萬用字元,他的意思就是篩選select開口的語句。當然這你自己可以隨便定義,如update%,delete%....。
把那個排除不包含值的行也給帶上,然後確定,運行。然後在資料庫中運行一句select。你會發現他檢測到啦。
每列以此向右,從EventClass開始,我給你講講都是什麼。
? ? 事件分類,申請了語句,應用程式名稱,作業系統使用者,資料庫使用者,cpu佔用率,讀資料庫次數,寫資料庫次說,執行指令碼用時,應用程式進程號,開始時間,結束時間等。
? ? 事件選擇,你就把滑鼠放上去,他下面有中文的注釋。自己好好看看,然後根據你自己的需要把事件勾選上來。
? ? ?然後檔案-->>另存新檔,可以把這些監測到的資料儲存為檔案,或資料表。
1.尋找期間最長的查詢? ?一般情況下,最長查詢時間的查詢語句就是最影響效能的原因存在。它不僅佔用資料庫引擎大量的時間,還浪費系統資源,還影響資料庫應用系統的互動速度。再對資料用應用系統進行最佳化時,先找出他,對其最佳化,在建立跟蹤時,勾上TSQL-SQL:BatchCompleted.跟Stored Procedures-RPC:completed。這樣就能找出來這個最長時間查詢然後對其進行分析最佳化。
select TextData,Duration,CPU from TraceFileDataTablewhere EventClass=12 -- 等於12表示BatchCompleted事件 and CPU<(0.4*Duration) --如果cpu的佔用時間,小於執行sql語句時間的40%,說明該語句等待時間過長
2.最佔用系統資源的查詢? ? 就是佔用cpu時間,跟讀寫IO的次數。建議事件包含Connect、Disconnect、ExistingConnection、SQL:BatchCompleted、RPC:completed,列包含writes,reads,cpu。
3.檢測死結? ? 在訪問量,並發量都很大的資料庫中,如果設計稍不合理,就有可能造成死結,給系統效能帶來影響。事件包含:RPC:Starting、SQL:BatchStarting、Lock:DeadLock(死結事件)、Lock:DeadLockChaining(死結的事件序列)。
三、Database Engine Tuning AdvisorDatabase Engine Tuning Advisor? ? Database Engine Tuning Advisor先是接受sql server profiler檢測出來的sql,視圖,預存程序,資料結構等等,然後他再自己分析,給出更好的索引,統計,分區等等建議資訊。
開啟之後,你在上一個工具中儲存的的檔案,你就在這裡的工作負載中選檔案,表就選表,把要分析的資料庫跟資料庫的表選上,也就是下面的用於工作負載分析的資料庫選擇,跟下面的要最佳化的資料庫和表
然後選則你想要的最佳化選項
根據需要,選上,進階選項裡面通常可以預設。確定。。
然後點左上方有一個開始分析。
分析完成
Sql效能偵查工具:Sql server profiler和最佳化工具:Database Engine Tuning Advisor