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 回答