使用 SQL Server 事件探查器的方案

 

  

使用 SQL Server Profiler的第一步是確定監視 SQL Server 實例的原因。本主題討論使用 SQL Server Profiler收集跟蹤信息的典型方案。

使用 SQL Server Profiler的典型方案包括:

  • 查找執行情況最差的查詢。
    例如,可以創建一個捕獲與 TSQLStored Procedure 事件類(RPC:CompletedSQL:BatchCompleted)相關的事件的跟蹤。在此跟蹤中包括所有數據列,按 Duration 分組並指定事件準則。例如,如果指定事件的 Duration 必須至少爲 10000 微秒,則可以從跟蹤中清除持續時間較短的事件。可以根據需要增大 Duration 的最小值。如果希望一次僅監視一個數據庫,請指定 Database ID 事件標準的值。
  • 確定死鎖的原因。
    例如,可以創建一個捕獲與 TSQLStored Procedure 事件類(RPC:StartingSQL:BatchStarting)和 Locks 事件類(Deadlock graphLock:DeadlockLock:DeadlockChain)相關的事件的跟蹤。在此跟蹤中包括所有數據列並按 Event Class 分組。如果希望一次僅監視一個數據庫,請指定 Database ID 事件標準的值。如果指定 Deadlock graph 事件類,SQL Server Profiler將生成圖形化表示形式的死鎖。有關詳細信息,請參閱使用 SQL Server Profiler 分析死鎖
    若要查看死鎖中涉及的連接,請執行下列操作之一:
    • 打開包含捕獲的數據的跟蹤,按 ClientProcessID 對數據進行分組並展開死鎖中涉及的兩個連接。
    • 將捕獲的數據保存到跟蹤文件中,然後兩次打開此跟蹤文件,使其出現在兩個單獨的 SQL Server Profiler窗口中。按 ClientProcessID 對捕獲的數據進行分組,然後展開死鎖中涉及的客戶端進程 ID;每個死鎖的連接將出現在一個單獨的窗口中。平鋪這兩個窗口以查看導致死鎖的事件。如果要將特定死鎖圖形數據保存到文件,請右鍵單擊死鎖事件並選擇“提取事件數據”
  • 監視存儲過程性能。
    例如,可以創建一個捕獲與 Stored Procedure 事件類(SP:CompletedSP:StartingSP:StmtCompletedSP:StmtStarting)和 TSQL 事件類(SQL:BatchStartingSQL:BatchCompleted)相關的事件的跟蹤。在此跟蹤中包括所有必要的數據列並按 ClientProcessID 分組。如果希望一次只監視一個數據庫,請使用數據庫 ID 篩選器爲“數據庫 ID”事件標準指定一個值。同樣,如果希望一次只監視一個存儲過程,請使用對象 ID 篩選器爲“對象 ID”事件標準指定一個值。
  • 審覈 SQL Server 活動。
    例如,如果安全管理員經常需要了解登錄到服務器的用戶,則 SQL Server Profiler跟蹤可以提供登錄到服務器或從服務器註銷的用戶的完整記錄。而且,此信息可用於法律或技術目的。
    創建跟蹤,並選擇 Audit Login 事件。若要返回適當的信息,請指定下列數據列:EventClass(默認選擇)、EventSubClassLoginSIDLoginName
  • 監視每個用戶的 Transact-SQL 活動。
    可以創建一個捕獲與 SessionsExistingConnectionTSQL 事件類相關的事件的跟蹤。在此跟蹤中包括所有數據列,不指定任何事件準則並按 DBUserName 對捕獲的事件進行分組。
  • 收集用於壓力測試的事件典型示例。
    SQL Server Profiler提供一個預定義的 TSQL_Replay 模板,此模板可用於迭代優化,例如基準測試。
  • 收集通過數據庫引擎優化顧問優化物理數據庫設計的事件示例。
    SQL Server Profiler提供一個預定義的優化模板,此模板收集跟蹤輸出中的相應 Transact-SQL 事件以用作數據庫引擎優化顧問中的工作負荷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章