使用SQLProfiler(事件探查器)跟蹤資料庫操作及慢查詢
1:應用程式連接配接SQL SERVER資料庫伺服器;
2:打開SQL Profiler開啟資料庫事件跟蹤;
(1):打開SQL Server Management Studio,選擇 “工具”—“SQL Server Profiler”,如下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5COwUDM4MTM4UTMtgTOxEDNxIDNxcTMzAzNxAjMtAjN2gDOy8CXzAzNxAjMvwFM2YDO4IzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
(2): 連接配接到指定伺服器,并制定跟蹤計劃;
選擇需要連接配接的伺服器之後;
預設彈出跟蹤屬性設定界面,
可以設定跟蹤結果儲存到檔案或者儲存到表,并能設定跟蹤的停止時間;如下圖:
在事件選擇框中選擇要跟蹤的事件,如下圖:
具體事件類别請參考。
事件類别 |
Broker 事件類别包括由 Service Broker 生成的事件類。 |
Cursors 事件類别包括由遊标操作生成的事件類。 |
CLR 事件類别 包括通過執行 .NET 公共語言運作時 (CLR) 對象而生成的事件類。 |
Database 事件類别包括自動增大或收縮資料檔案或日志檔案時生成的事件類。 |
Deprecation 事件類别包括與不推薦使用的情況相關的事件。 |
Errors and Warnings 事件類别(資料庫引擎)包括傳回 SQL Server 錯誤或警告時産生的事件類。例如,編譯存儲過程時發生的錯誤或 SQL Server 中的異常錯誤。 |
Full Text 事件類别包括啟動、中斷或停止全文搜尋時生成的事件類。 |
Locks 事件類别包括在擷取、取消、釋放鎖時或者在對鎖執行一些其他操作時生成的事件類。 |
Objects 事件類别包括在建立、打開、關閉或删除資料庫對象時生成的事件類。 |
OLEDB 事件類别包括由 OLE DB 調用生成的事件類。 |
Performance 事件類别包括在執行 SQL 資料操作語言 (DML) 運算符時生成的事件類。 |
Progress Report 事件類别包括 Progress Report: Online Index Operation 事件類。 |
Scans 事件類别包括掃描表和索引時生成的事件類。 |
Security Audit 事件類别包括用于稽核伺服器活動的事件類。 |
Server 事件類别包含正常伺服器事件。 |
Sessions 事件類别包括在連接配接和斷開 SQL Server 執行個體的用戶端時生成的事件類。 |
Stored Procedures 事件類别包括執行存儲過程時生成的事件類。 |
Transactions 事件類别包括執行 Microsoft 分布式事務處理協調器事務時或寫入事務日志時生成的事件類。 |
TSQL 事件類别包括執行從用戶端傳遞到 SQL Server 執行個體的 Transact-SQL 語句時生成的事件類。 |
User-Configurable 事件類别包括可以定義的事件類。 詳情請參考:http://technet.microsoft.com/zh-cn/library/ms175481(v=sql.90).aspx |
上圖可以看出,可以跟蹤指定的應用程式,指定的機器名,指定的資料庫登入名,能記錄所有應用程式發出的SQL操作請求以及執行開始時間,結束時間,持續時間等;
在上圖的列篩選器中對需要跟蹤的事件設定篩選條件;如下圖:
如有多個應用程式或者多個人同時登陸連接配接到這台資料庫伺服器,可以在這裡進行篩選設定,隻跟蹤指定機器,指定應用程式,指定資料庫登入使用者的所有資料庫操作;
具體跟蹤各事件列的含義請參考:《sql跟蹤各事件列的含義》
點運作之後,可自動運作,無須值守,可自動運作到之前設定跟蹤計劃時指定的停止時間,停止跟蹤;
(3):運作應用程式,進行測試操作;
應用程式包括:所有連接配接資料庫的應用程式都可以,無論是C/S架構的軟體,還是B/S架構的浏覽器,或者資料庫本身,所有連接配接到資料庫,對資料庫做的任何操作都可以記錄,并可以根據設定的跟蹤條件進行篩選;
如設定超過指定時間的查詢:
(4):對跟蹤結果進行分析;如下圖:
如上圖所示,已經記錄了執行的SQL查詢語句,開始時間,結束時間,持續時間,查詢的應用程式名,發起人等;
注:有時候可能顯示時間都0,此時可以工具——>選項中對時間機關進行設定。
轉載于:https://www.cnblogs.com/ai594ai/p/6565926.html