3

SQL Server プロファイラーで行うように、C# アプリからデータベース サーバーにトレースを作成したいと考えています。私の SQL 管理スタジオでは機能しないように見えるストアド プロシージャ (sys.sp_trace_create など) を見つけました。誰かがコーディングを手伝ってくれないかと思っていたのですが、どこから始めればいいのでしょうか?!

4

3 に答える 3

3

プロファイラー自体のように、これをリアルタイムにしたいですか?それをするのは難しいでしょう。基本的に、プロファイラーを再作成することになります。

それが要件でない場合は、サーバー側のトレースを開始するために見つかったsp_trace_createストアドプロシージャを呼び出してから、アプリケーションを使用してこのトレースが生成するファイルを開くことをお勧めします。

これがどのように機能するかを知る最も簡単な方法は、SQLプロファイラー自体を実行し、必要なすべてのオプションを設定してから、[実行]をクリックし、すぐに[停止]をクリックすることです。次に、[ファイル]、[エクスポート]、[スクリプトトレース定義]に移動し、適切なバージョンを選択します。

これにより、すべてのトレースイベント、列などを含む、すべての正しい部分をまとめたTSQLスクリプトが得られます。

プロファイラーのより技術的な歴史:この古いSQLMagの記事には、SQL7.0が導入されたときに「SQLTrace」と呼ばれるアプリに取って代わったプロファイラーの歴史があります。

于 2008-11-18T15:46:40.550 に答える
2

それでも興味がある場合は、このコードを見つけてください

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-10T03:59:55.033 に答える
0

LINQ to SQLを使用している場合、それが生成するすべてのSQLコマンドを出力ウィンドウに送信できます(または、必要に応じてファイルに記録できます)。ここを参照してください:http ://www.u2u.info/Blogs/Kris/Lists/Posts/Post.aspx?ID = 11

于 2008-11-18T16:18:32.280 に答える