使用SQL Server Profiler

oo0yuki0oo發表於2010-05-13
1. 瞭解SQL Server Profiler
SQL Server Profiler 是圖形化實時監視工具,能幫助系統管理員監視資料庫和伺服器之行為, 比如死鎖之數量,致命之錯誤,跟蹤Transact-SQL 語句和儲存過程。可以把這些監視資料存入表或檔案中,並在以後某一時間重新顯示這些事件來一步一步之進行分析。
通常我們使用SQL Server Profiler 僅監視某些插入事件,這些事件主要有:
登入連線之失敗、成功或斷開連線;
DELETE、 INSERT、 UPDATE 命令;
遠端儲存過程呼叫(RPC) 之狀態;
儲存過程之開始或結束,以及儲存過程中之每一條語句;
寫入SQL Server 錯誤日誌之錯誤;
開啟之遊標;
向資料庫物件新增鎖或釋放鎖。
我們之所以不監視過多之事件,原因在於對事件進行監視往往增加系統之負擔,並且使跟蹤檔案很快增長成大容量檔案,從而引起不必要之麻煩。

2. 建立跟蹤
在SQL Server 中可以使用SQL Server Profiler 建立跟蹤,也可以使用跟蹤建立嚮導或是擴充套件儲存過程。在這裡我們將介紹如何使用SQL Server Profiler 來建立跟蹤。

(1) 啟動SQL Server Profiler (與啟動SQL Server Enterprise Manager 一樣),從File 之下拉選單中選擇New, 再選擇Trace 選項,此時開啟Trace Properties 對話方塊,如圖19-2 所示。
在該對話方塊中定義跟蹤之名稱、型別、執行跟蹤之SQL Server 以及跟蹤輸出資料之儲存方式。其中各選項之含義為:
Shared: 表示所有被允許登入到執行SQL Server Profiler 伺服器之使用者都可以使用該跟蹤;
Private: 表示只有當前建立者可以使用該跟蹤;
Capture to file: 表示將跟蹤結果儲存到檔案中,可減少進行跟蹤時之記憶體開銷;
Capture to table: 表示將跟蹤結果儲存到表中,這極易引起較大之額外系統開銷。

(2) 選中Events 標籤頁,所示該對話方塊用來確定將跟蹤哪些事件。在 Available Events 下之視窗中選擇要跟蹤之事件,底部之方框內便顯示出該事件之含義,單擊Add ,增加到Selected Events 事件中;

(3) 選中Data Columns 標籤頁,。在該對話方塊可以選擇跟蹤事件哪些資料列,通常選擇那些我們比較關心之列。


(4) 選中Filters 標籤頁。

(5) 單擊“確定”按鈕完成跟蹤建立。

3. 檢視、分析跟蹤
使用SQL Server Profiler 可以檢視跟蹤中之事件資料,在跟蹤中之每一行代表一個事件,這些事件資料是由跟蹤之屬性決定之。可以把SQL Server 資料複製到其它之應用程式中,如SQL Server Query Analyzer 或Index Tuning Wizard 然後利用它們進行資料分析 ,但通常我們使用SQL Server Profiler 來進行跟蹤分析。
利用SQL Server Profiler 既可以開啟副檔名為.trc 之跟蹤檔案,也可以開啟副檔名為.log 之日誌檔案,以及一般之SQL 指令碼檔案
因為跟蹤資訊通常儲存在檔案或表中,所以透過開啟表或檔案就可以檢視、分析跟蹤。
開啟跟蹤之步驟為:
從File 選單中選擇Open, 再選擇Trace Files.


Sql server 效能監視器:

要標識CPU核心效能,Windows 2000系統提供了一個系統物件計數器:% Total Processor Time,該計數器評估CPU的平均使用情況這個計數器用來監視CPU使用情況。如果在一段連續時間(10分鐘左右),數值超出80%,就說明系統產生了CPU瓶頸,你需要採取一些必要的措施,例如降低SQL Server的工作負載,更換更快的CPU或者更多的CPU。

要標識系統記憶體核心效能,需要使用記憶體物件計數器:Pages/Sec,該計數器每秒鐘的頁面檔案數,包括從記憶體移動到硬碟,或者從硬碟載入到記憶體的這兩類頁面檔案。如果SQL Server是伺服器上唯一執行的應用服務,正常情況下,該計數器除了在某些跳躍點處外,都應該差不多是0。如果在一段連續時間(10分鐘左右)內,該數值大於0,說明有頁面檔案相關的問題。造成該異常計數器數值,有可能是因為伺服器上還有其它的應用服務在執行,或者你關閉了SQL Server的動態記憶體設定。

要標識I/O效能,物理磁碟物件計數器:Avg.Disk Queue Length應該被監視。如果該計數器數值在一段連續時間(10分鐘左右)內,超過2,說明磁碟陣列有I/O瓶頸。解決該瓶頸的方法有:如果可能,增加硬碟;更換更快的硬碟;如果可能,增加高速緩衝儲存器(Cache);更換RAID的模式;更換更快的控制器;或者降低SQL Server的工作負載。

要標識實體記憶體效能,需要選擇SQL Server 2000的緩衝管理物件計數器:Buffer Cache Hit Ratio。該計數器標識SQL Server進入緩衝(不是硬碟)獲取資料的頻率。對於線上事務處理(OLTP)應用,該計數器數值應該大於90%。如果不是這樣,需要新增更多的記憶體提高效能,或者降低SQL Server的工作負載。

上面幾個計數器是你最常需要使用的,能監視最基本的SQL Server活動情況。如何最佳利用效能監視器

一般而言,效能監視器提供兩種主要的方式來分析Windows 2000和SQL Server 2000的計數器。一種是實時地顯示圖形化資料;另一種是將資料收集到日誌檔案,需要分析的時候再圖形化顯示出來。

如果你需要立刻分析並得到結果,實時化監視方式比較好。特別是你要立刻處理一些特定的效能問題的時候,該方式也很方便。實時方式預設以一秒為單位收集資料,可以同時收集不同的計數器。這在分析計數器之間效能相關性的時候,特別有用。

雖然實時化方式很方便,不過要分析一段時間內的效能,用日誌檔案方式更有用一點。你可以選擇那些計數器資料需要收集,收集的頻率是多少。例如,你可以在24小時內,每隔一分鐘,收集20個計數器的資料;或者也可以選擇收集30天內,每隔10分鐘, 50個計數器的資料。資料被收集後,效能監視器可以以圖表的形式顯示便於分析,或者你也可以將資料匯入到資料庫或者電子表格中進行更詳細的分析。

如果你很關注SQL Server的效能情況,強烈建議總是監視那些關鍵的計數器,並進行趨勢分析(可以利用Microsoft Excel為工具)。例如,利用收集的資料進行趨勢分析,有助於預測SQL Server對硬體的需求,如是否需要更多的CPU,更快的I/O裝置或更多記憶體。趨勢分析保留了歷史資料,你可以利用其來向你的上司說明你為什麼需要對現有硬體配置進行升級或更換。
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8337095/viewspace-1033584/,如需轉載,請註明出處,否則將追究法律責任。

相關文章