簡體   English   中英

MS SQL Server跟蹤日志的集合

[英]Collection of MS SQL Server trace log

我需要編寫一個程序,該程序可以從C代碼收集SQL Server跟蹤日志。 似乎有幾種方法可以做到這一點:

  1. 使用最常見的SQL跟蹤方法,其中跟蹤文件通過存儲過程映射到表。 然后可以使用SQL / ODBC收集此跟蹤日志。 這樣做的問題是跟蹤文件旋轉且大小受限制。 收集跟蹤時,可能會交換跟蹤文件而未收集所有事件。 其次,這些存儲過程將在將來的版本中刪除 ,因此在此基礎上似乎不是一個好主意。
  2. 推薦的方法是改用擴展事件 它支持ETW和文件目標,但是在服務器端的設置似乎更復雜,並且並非所有SQL Server版本都支持此功能。
  3. 也有SMO,但這不提供C API。

那么,正確收集SQL Server跟蹤日志的推薦方法是什么?

這似乎是一個受歡迎的問題。 學習C#並使用

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();        
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM