0

C コードから SQL Server トレース ログを収集できるプログラムを作成する必要があります。これを行うにはいくつかの方法があるようです:

  1. トレース ファイルがストアド プロシージャを介してテーブルにマップされる、最も一般的なSQL トレースメソッドを使用します。このトレース ログは、SQL/ODBC を使用して収集できます。これに関する問題は、トレース ファイルがローテーションされ、サイズが制限されることです。トレースが収集されている間に、トレース ファイルがスワップされ、すべてのイベントが収集されない可能性があります。第 2 に、これらのストアド プロシージャは将来のバージョンで削除されるため、構築するのは得策ではないようです。
  2. 推奨される方法は、代わりに拡張イベントを使用することです。これは ETW とファイル ターゲットをサポートしますが、セットアップはサーバー側でより複雑なようであり、すべての SQL Server バージョンがこれをサポートしているわけではないようです。
  3. SMOもありますが、これは C API を提供しません。

では、SQL Server トレース ログを適切に収集するための推奨される方法は何ですか?

4

1 に答える 1

-1

これはよくある質問のようです。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();        
}
于 2012-12-10T04:04:28.910 に答える