天天看點

五、性能監視(1)事件探查器

一、概念

  SQL Server Profiler (SQL Server 2000時稱為“事件探查器”)是 SQL 跟蹤的圖形使用者界面,用于監視資料庫引擎或 SSAS的執行個體。 您可以捕獲有關每個事件的資料并将其儲存到檔案或表中供以後分析。 例如,可以對生産環境進行監視,了解哪些存儲過程由于執行速度太慢而影響了性能。

  SQL Server Profiler 用于下列活動中: 

•  逐漸分析有問題的查詢以找到問題的原因。

•  查找并診斷運作慢的查詢。

•  捕獲導緻某個問題的一系列 Transact-SQL 語句。 然後用所儲存的跟蹤在某台測試伺服器上複制此問題,接着在該測試伺服器上診斷問題。 

•  監視 SQL Server 的性能以優化工作負荷。 有關為資料庫工作負荷而優化實體資料庫設計的資訊,請參閱資料庫引擎優化顧問。 

•  使性能計數器與診斷問題關聯。

  SQL Server Profiler 還支援對 SQL Server 執行個體上執行的操作進行稽核。 稽核将記錄與安全相關的操作,供安全管理者以後複查。 

二、基本操作

  SQL Server Profiler 是一個功能豐富的界面,用于建立和管理跟蹤并分析和重播跟蹤結果。 事件儲存在一個跟蹤檔案中,稍後試圖診斷問題時,可以對該檔案進行分析或用它來重播特定的一系列步驟。

  建立跟蹤的過程如下:

1. 建立跟蹤

  在“檔案”菜單上,單擊“建立跟蹤”,并連接配接到 SQL Server 執行個體。此時,将顯示“跟蹤屬性”對話框。

五、性能監視(1)事件探查器

  注意:如果選中“建立連接配接後立即開始跟蹤”,就不會顯示“跟蹤屬性”對話框,而是直接開始跟蹤。 若要關閉此設定,請在“工具”菜單上,單擊“選項”,再清除“建立連接配接後立即開始跟蹤”複選框。 

2. 輸入跟蹤的名稱

  在“跟蹤名稱”框中,鍵入跟蹤的名稱。

3. 使用模闆

  在“使用模闆”清單中,為此跟蹤選擇一個跟蹤模闆;如果不想使用模闆,請選擇“空白”。

  常用的模闆有以下:

(1)Blank(空白)。空白跟蹤,友善從頭建立整個跟蹤。

(2)SP_Counts。捕捉執行的每個存儲過程,以便判斷每個過程執行了多少次。

(3)Standard(預設)。供定制的最常用的模闆。捕捉執行的存儲過程和即席(Ad Hoc)查詢,捕捉每個過程和批處理的性能統計資料,還捕捉每個登入(login)和登出(logout)。

(4)TSQL。捕捉執行的所有存儲過程和即席查詢批處理的一個清單,但不包括任何性能統計資料。

(5)TSQL_Duration。捕捉執行的每個存儲過程和即席查詢批處理的持續時間。

(6)TSQL_Grouped。捕捉每個登入和登出,以及執行的每個存儲過程和即席查詢批處理。包括以辨別“執行請求的應用程式和使用者”的資訊,但不包括任何性能資料。

(7)TSQL_Locks。捕捉阻塞和死鎖資訊,比如阻塞的程序、死鎖鍊、死鎖圖、鎖更新(lock escalation)和鎖逾時。還捕捉每個存儲過程、存儲過程中的每個指令以及每個即席查詢請求。

(8)TSQL_Replay。捕捉針對執行個體執行的存儲過程和即席查詢批處理,它采用的格式允許在測試系統上重播跟蹤。該模闆常用于執行負載和回放測試。

(9)TSQL_SPs。捕捉所有即席查詢批處理、存儲過程以及存儲過程中的每個語句的性能資料。還會捕捉每個登入和登出。

(10)Tuning。捕捉即席查詢批處理、存儲過程以及存儲過程中的每個語句的基本性能資料。

4. 儲存跟蹤結果

  若要儲存跟蹤結果,請執行下列操作之一

(1)儲存到檔案

  單擊“儲存到檔案”将跟蹤捕獲到檔案中。

  指定“設定最大檔案大小”的值。 預設值為 5 MB。 防止檔案增長時失控。

  或者,選擇“啟用檔案滾動更新”,以便當檔案大小達到最大值時自動建立新檔案。如果未“啟用檔案滾動更新”但又“設定最大檔案大小”,當檔案達到上限時Profiler會停止捕捉事件。

  也可以選擇“伺服器處理跟蹤資料”,由正在運作跟蹤的服務而不是用戶端應用程式來處理跟蹤資料。在伺服器處理跟蹤資料時,即使是在壓力較大的情況下也不會跳過事件,但是伺服器性能可能會受到影響。 

(2)儲存到表

  單擊“儲存到表”将跟蹤捕獲到資料庫表中。

  根據需要,可以單擊“設定最大行數”,并指定值。

  注意:如果不将跟蹤結果儲存到檔案或表中,則當 SQL Server Profiler打開時可以檢視跟蹤。 但是,在停止跟蹤并關閉 SQL Server Profiler之後會丢失跟蹤結果。 為了避免這種丢失跟蹤結果的情況,可以在關閉 SQL Server Profiler之前單擊“檔案”菜單上的“儲存”來儲存結果。 

  在伺服器上以網格方式顯示跟蹤結果時,需要大量的記憶體,可能會加載伺服器的負擔。遇到這種情況,建議在伺服器上以文本格式檢視跟蹤結果。 

5. 跟蹤停止時間

  根據需要,可以選中“啟用跟蹤停止時間”複選框,再指定停止日期和時間。

6. 事件選擇

  若要添加或删除事件、資料列或篩選器,請單擊“事件選擇”頁籤。 

五、性能監視(1)事件探查器

7. 啟動跟蹤

  單擊“運作”啟動跟蹤功能。

五、性能監視(1)事件探查器

三、重播跟蹤

  建立跟蹤的目的之一,是在以後重播它們。在重播時,SQL Server Profiler可以模拟使用者連接配接和驗證,利用它可以複原在跟蹤中記錄的操作。可以使用不同的方式重播跟蹤,以幫助發現并解決各種不同的問題。

(1)逐漸執行跟蹤以監視跟蹤中的每一個步驟。

(2)使用初始的時間基線執行跟蹤,以模拟使用者負載。

(3)以高重播率執行跟蹤,來對伺服器進行壓力測試。

  重播跟蹤的操作方法如下:http://technet.microsoft.com/zh-cn/library/ms187857(v=sql.105).aspx

1. 加載跟蹤檔案或跟蹤表

  在“檔案”菜單中選擇“打開”,然後選擇“跟蹤檔案”或“跟蹤表”,也可以選擇腳本檔案。可以将另一台伺服器上捕捉到的跟蹤檔案在本機上重播。

五、性能監視(1)事件探查器

  之後,跟蹤被載入SQL Server Profiler視窗,記錄在跟蹤中的事件和指令在視窗中顯示出來。 

2. 啟動重播

  在“重播”菜單中選擇相應的按鈕進行操作。

五、性能監視(1)事件探查器

   注意:SQL Server 2012有專門的重播工具,在此之前,Profiler的重播功能基本上被RML、ReadTrace、OStress、ORCA等實用工具所取代。

四、性能影響

  SQL Server Profiler的跟蹤啟動之後, SQL Server引擎在處理正常事務的同時,還要向Profiler傳送跟蹤資訊。是以,Profiler會加重SQL Server的負擔,特别是在資料庫引擎處理大量資料時,對性能的影響尤其明顯。

PTO