2012年8月14日 星期二

如何讀取SQL Server的追蹤檔(Trace Files)

        相信有在使用SQL Server的人對SQL Profiler一定都不陌生,我在前面的幾篇文章中也都有介紹到,透過這個工具可以進行SQL Server的監控、效能追蹤等,但是產生的追蹤檔如果檔案很大時,直接透過SQL Profiler本身的工具開啟時,操作上比較不方便,而且如果有需要進行進一步的統計分析時,就無法作到,通常需要另外的將檔案的資料匯入到資料表中進行處理才可以。

相關文章:
SQL Server - 使用者稽核 - 威力加強版
http://caryhsu.blogspot.tw/2011/08/sql-server_12.html
SQL Server 效能調整 - 如何整合 SQL Profiler 與 Performance Monitor
http://caryhsu.blogspot.tw/2011/11/sql-server-sql-profiler-performance.html

         SQL Server在內建的功能中其實有一個內建的Function可以將這些追蹤檔快速的載入或是轉存到資料庫中,語法上主要透過 [fn_trace_gettable] 進行,而如果你的檔案有分成不同的檔案時,也可以透過此Function一次載入,方法如下。

下列的範例已SQL Server預設的 default trace為主,其格式為 log.trc、log_1.trc....一直進行分檔的動作,所以你只需在檔案中指定讀入 log.trc 即可,後續的檔案系統會自動接續讀入。

SELECT * FROM ::fn_trace_gettable('C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\log.trc', DEFAULT)

載入後,你就可以透排序的方式找出最常看的四個面向問題,如 [Duration]、[CPU]、[Reads]、[Writes],藉以找出問題發生時各種情況的語法,再進行調整。

參考連結:
fn_trace_gettable (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms188425(v=sql.90).aspx

沒有留言:

張貼留言