2008-11-18 41 views
3

我想從我的C#應用​​程序在數據庫服務器上創建一個跟蹤,就像你在SQL Server Profiler中做的一樣。我發現存儲過程(sys.sp_trace_create等),似乎不適合我的SQL管理工作室。我想知道是否有人可以幫助編碼,或者我會開始這樣做?!在C#應用程序中模仿SQL Server Profiler?

回答

3

您是否希望這是實時的,就像分析器本身一樣?這很難做到。你基本上是重新創建分析器。

如果這不是要求,我會建議您只需調用您發現的sp_trace_create存儲過程來啓動服務器端跟蹤,然後使用您的應用程序打開該跟蹤產生的文件。

最簡單的方法是學習如何運行SQL Profiler本身,設置所需的所有選項,然後單擊運行,然後立即單擊停止。然後轉到「文件」,「導出」,「腳本跟蹤定義」,然後選擇適當的版本。

這應該給你,把所有正確的拼在一起,包括所有的跟蹤事件,柱等

更多探查技術史上的一個TSQL腳本:This old SQLMag article有探查,替換的一些歷史SQL 7.0引入時稱爲「SQL跟蹤」的應用程序。

1

如果你仍然有興趣,發現這個代碼

public void FileToTable() 
{ 
    TraceServer reader = new TraceServer(); 

    ConnectionInfoBase ci = new SqlConnectionInfo("localhost"); 
    ((SqlConnectionInfo)ci).UseIntegratedSecurity = true; 

    reader.InitializeAsReader(ci, @"Standard.tdf"); 

    int eventNumber = 0; 

    while (reader.Read()) 
    { 
     Console.Write("{0}\n", reader.GetValue(0).ToString()); 
    } 
    reader.Close();   
}