程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 數據庫監視-profiler使用概述

數據庫監視-profiler使用概述

編輯:關於SqlServer
 

通過SQL Server—>Tools—>SQL Server Profiler啟動

注:激活SQL Profiler跟蹤約損耗1/7的性能,所以要謹慎使用。

1,通用頁:

跟蹤的記錄有兩種保存方式:保存到文件和保存到表。

通常選擇保存到文件,不要把跟蹤直接寫入到表,這樣會嚴重影響性能,把文件寫到與數據庫位置不同的磁盤是最快的方案。

2,模塊選擇:

Standard:創建跟蹤的通用起點。捕獲所運行的全部存儲過程和 Transact-SQL 批處理。用於監視常規數據庫服務器活動。

TSQL:捕獲客戶端提交給 SQL Server 的所有 Transact-SQL 語句及其發出時間。用於調試客戶端應用程序。

TSQL_Duration:捕獲客戶端提交給 SQL Server 的所有 Transact-SQL 語句及其執行時間(以毫秒位單位),並按持續時間對其進行分組。用於識別執行速度慢的查詢。TSQL_Grouped:捕獲提交給 SQL Server 的所有 Transact-SQL 語句及其發出時間。信息按提交語句的用戶或客戶端分組。用於調查某客戶端或用戶發出的查詢。TSQL_Locks:捕獲客戶端與異常鎖事件一起提交到 SQL Server 的 Transact-SQL 語句。用於排除死鎖、鎖超時和鎖升級事件的故障。TSQL_Replay:捕獲重播跟蹤所需的 Transact-SQL 語句的詳細信息。用於執行迭代優化,例如基准測試。

3,事件選擇:

若多是存儲過程,則跟蹤SP:Completed事件,若存儲過程有很多操作,查看明細要跟蹤SP:StmtCompleted.若程序多是sql語句,則跟蹤SQL:BatchCompleted與 SQL:StmtCompleted事件在事件選擇版塊上點擊列名,可以進行篩選,如指定數據庫篩選:DataBaseName 類似於brm_lvjian_new.


4,1) 文件導出腳本,包裝成一個存儲過程 ,在此存儲過程中 print @traceid


2)執行此存儲過程,根據打印出的@traceid來控制跟蹤的執行與停止,之所以不用profiler的GUI界面,第一是profiler不便於分析,並且需要將數據寫入到GUI,性能也不高。運行:EXEC [WorkTraceStart] 'brm_lvjian_new',@tracefile='d:\mytrace'


3)控制跟蹤:執行: EXEC sp_trace_setstatus @traceid, [0|1|2] 0: 停止 1:啟動 2:刪除 注:在執行2)的存儲過程後,裡面有一個 EXEC sp_trace_setstatus @traceid, 1; 將啟動跟蹤。 查看跟蹤:sys.traces


4,分析保存的跟蹤文件

1)導入select CAST(textdata as nvarchar(max)) as tsql_code,durationinto Workloadfrom sys.fn_trace_gettable('C:\test\performancetrace_20100802.trc',NULL) as TT


2)分析select convert(varchar(60),tsql_code),sum(duration) s,avg(duration) t


from workloadwhere duration >=3000 --一般是執行時間在3秒以上的

group by convert(varchar(60),tsql_code)

order by s desc

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved