開發調試中,ORM(LINQ to SQL、Entity Framework)生成的 T-SQL 往往不透明;生產環境異常堆疊缺失上下文。Profiler 作為圖形化跟蹤工具,能完整捕獲引擎層事件,是「看見真實 SQL」的利器。
點擊右下 顯示所有事件,在 Errors and Warnings 類別下勾選:
RAISERROR/THROW 用戶自定義錯誤。建議同時勾選 TSQL → SQL:BatchCompleted / RPC:Completed,關聯異常前後的完整語句上下文。
ApplicationName = '.Net SqlClient Data Provider'(或具體進程名)。SQL:BatchStarting 即為觸發異常的確切 T-SQL,直接複製至 SSMS 分析執行計劃、參數嗅探、索引缺失等。生產環境間歇性報錯無法復現時:
sp_trace_create)或 Extended Events(輕量級),長時間運行寫入 .trc 文件。Error 列篩選,結合 HostName/LoginName/SPID 定位來源應用與用戶。EventClass, TextData, StartTime, EndTime, SPID, DatabaseName, LoginName, Error, Severity,減少內存/磁盤壓力。DatabaseID = DB_ID('MyDB')、Duration > 1000(毫秒)、Error > 0 精準鎖定問題。Max Worker Threads 耗盡。