2013年10月8日 星期二

[SQL Server] 建立可透過排程自動啟動並結束的SQL Trace

關於SQL Trace及SQL Server Profiler的差別及使用注意事項可看文章最後的參考資料

透過以下程序就可以自動啟動,並且在指定時間停止
1. 依序展開[開始]->[Microsoft SQL Server 2008 R2]->[效能工具]->[SQL Server Profiler]

2. 在[SQL Server Profiler]視窗中的工具列依序展開[檔案]->[新增追蹤]

3. 在[連接到伺服器]視窗選擇要Trace的資料庫主機後按下[連接]

4. 在[追蹤屬性]視窗選擇您要監控的項目以及設定相關屬性後按下[執行]

5. 回到[SQL Server Profiler]視窗中的工具列依序展開[檔案]->[停止追蹤]

6. 在[SQL Server Profiler]視窗中的工具列依序展開[檔案]->[匯出]->[指令碼追蹤定義]->[對於 SQL Server 2005-2008 R2]後將檔案存放在您指定的路徑下且該副檔名為.sql,例如:Trace_Temp.sql

7. 使用 SSMS 管理工具,開啟Trace_Temp.sql

8.在Trace_Temp.sql檔案中找到以下的程式碼並修改參數後存檔,關於sp_trace_create的相關參數請參考TECHNET
    declare @rc int
    declare @TraceID int
    declare @maxfilesize bigint
    declare @stoptime datetime
  set @maxfilesize = 100
  set @stoptime '2013-10-08 07:15:00'
    -- Please replace the text InsertFileNameHere, with an appropriate
    -- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
    -- will be appended to the filename automatically. If you are writing from
    -- remote server to local drive, please use UNC path and make sure server has
    -- write access to your network share

  exec @rc = sp_trace_create @TraceID output, 2, N'D:\myTrace\TraceLog',        @maxfilesize@stoptime 
    參數說明
    @TraceID output, 2 --> 指定在到達 max_file_size 時,關閉目前的追蹤檔,建立一個新檔案
     @tracefile=N'D:\myTrace\TraceLog' --> 指定存放路徑
     @maxfilesize = 100 --> 單一Trace檔案大小上限
     @stoptime = '2013-10-08 07:15:00' --> 停止Trace時間

9. 將Trace_Temp.sql排入排程(SQL或Windows排程皆可)

10. 待Trace完成後,再用SQL Server Profiler工具開啟或是匯入到SQL Server中做後續分析

參考資料
    1. 德瑞克老師的使用 SQL Profiler 建立「SQL 追蹤(SQL Trace)」
    2. Facebook的Super SQL Server 楊老師的文件"資料庫管理主題 VII, 如何藉由SQL Server Profiler快速產生sp_trace程序"
    3.TECHNET sp_trace_create (Transact-SQL)

1 則留言:

  1. 請問老師,我是追蹤Analysis server ,匯出的資料是XMLA 要如何放在排程,讓它自動啟動呢? 因為固定星期六會關機,想要讓它可以主機開機時,就自動打開

    回覆刪除