1

私のアプリでは、リアルタイム トレースを作成しています (方法はまだわかりませんが!)。SQlServer の sp_trace_create 関数では、@maxfilesize のデフォルトが 5 であることを知っていますが、私のアプリでは、ユーザーがそれを止めたい...これを行う方法はありますか?


ファイルを保存したくないので...ロールオーバーがどのように機能するかわかりませんか? 現在、指定されたすべてのイベントを最大ファイルサイズ1でデータベースに照会するタイマーループに入れています(通常、約2秒以上かかりません)、dgviewの古いデータとマージして削除します元のファイル。これは、ユーザーが停止するように指示するまで繰り返されます。これにより、タイマーによるデータベースへのクエリが停止します。堅実な方法ではありませんが、その始まりだと思います! 今必要なのは、列に一致するデータ型として入力する必要があるフィルターに値を設定するときのように、列のデータ型を見つけることです...誰でもデータ型のリストを取得できる手がかりを持っています? msdnにはリストがありますが、タイプはありません...

4

2 に答える 2

1

最大サイズで停止するのではなく、ファイルのロールオーバーでトレースを開始するには、次のようにトレースを開始します。

exec @rc = sp_trace_create @TraceID output, 2, N'InsertFileNameHere', @maxfilesize, NULL 

@maxfilesize は、新しいロールオーバー ファイルが作成される前に到達するサイズを定義します。

警告: 無制限のトレースの実行には十分注意してください。プロダクション ディスクがいっぱいになったら、それは私のものではなくあなたの頭です。

次のように実行中のトレースを停止できます。

EXEC sp_trace_setstatus @ID, 0

EXEC sp_trace_setstatus @ID, 2

@ID は、停止するトレースの ID です。

この投稿を参照してください。

于 2008-11-20T12:19:21.043 に答える
0

ドキュメントによると、あなたがしたいことは不可能です:

[ @maxfilesize = ] max_file_size トレース ファイルの最大サイズをメガバイト (MB) 単位で指定します。max_file_size は bigint で、デフォルト値は 5 です。

TRACE_FILE_ROLLOVER オプションを指定せずにこのパラメータを指定すると、使用されているディスク領域が max_file_size で指定された量を超えると、トレースはファイルへの記録を停止します。

ファイルを循環してテーブルやアプリにロードできない理由がわかりません。そんなに難しくないはずです。

于 2008-11-20T15:13:19.727 に答える