在開發資料庫應用的時候,我們常會使用 SQL Server Profiler 工具幫我們監控到底應用程式對資料庫下了什麼 SQL 指令,但是在 SQL Server 2005 Express 版本中並沒有提供 SQL Server Profiler 工具,只有 SQL Server 2005 標準版以上才有此工具,所以不是所有開發人員都能夠享受到 SQL Server Profiler 的強大功能。
今天發現一個不錯的 SQL Server Profiler 替代品:Profiler for Microsoft SQL Server 2005 Express Edition,竟然有免費的精簡版,而且還是 Open Source 的產品,真的是佛心來的。
你下載回來後無須安裝,直接點選 SqlExpressProfiler.exe 就可以開啟 SqlExpressProfiler 程式:
按下 New trace 按鈕後就會開啟 Trace Properties 視窗,並輸入資料庫的連線資訊:
這時候還必須先勾選 Events 頁籤下的事件才能針對您勾選的事件進行追蹤(Profile),如果你要追蹤 Stored Procedure 與一般 T-SQL 語法的話,你可以勾選 RPCCompleted 與 SQLBatchCompleted 事件的 TextData 就好,選好之後按下右下角的 Run 按鈕就會開始進行 Profiling 了。
下圖就是進行 Profiling 後追蹤到的結果,圖中選取到的那一項就是我的應用程式透過 LINQ to SQL 查詢資料時最後在資料庫中查詢的 T-SQL 語法:
相關連結
2008-05-26 更新
今天才發現原來在跑 Profiler for Microsoft SQL Server 2005 Express Edition 時,在 SQL Server 的 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data 目錄下會產生 *.trc 追蹤檔,這裡會紀錄所有應用程式對 SQL Server 操作的資料紀錄。如果累積太多硬碟可是會爆掉的,你可以在分析完追蹤檔案後刪除這些檔案。
如果你要分析這些檔案的話可以下以下指令:
[code:tsql]
SELECT *
FROM fn_trace_gettable('C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\master.mdf..2008.05.26.14.22.55.trc',default)
ORDER BY starttime
[/code]