创建无限制的SqlServer跟踪

时间:2008-11-20 12:16:31

标签: sql-server trace sqlprofiler

在我的应用程序上,我正在创建一个实时跟踪(不确定我是怎么回事!)和SQlServer中的sp_trace_create函数,我知道@maxfilesize默认为5,但在我的应用程序上它将被停止当用户想要阻止它时...任何想法如何做到这一点?


因为我不想保存文件...我不确定翻转是如何工作的? 现在我把它放在一个定时器循环上,查询数据库上的所有指定事件,最大文件大小为1(通常不需要大约2秒),与我的dgview中的旧数据合并并删除原始文件。这将循环,直到用户告诉它停止,这将停止计时器查询数据库。不是一个可靠的方法,但我想它是一个开始!我现在需要的是找出列的数据类型,因为当我在过滤器中设置我的值时,他们需要作为匹配数据类型进入列...任何人都有任何线索我可以获得数据类型的列表? msdn有列表但没有类型...

2 个答案:

答案 0 :(得分: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。

请参阅此post

答案 1 :(得分:0)

根据文档,您不想做什么:

[@maxfilesize =] max_file_size 指定跟踪文件可以增长的最大大小(MB)。 max_file_size是bigint,默认值为5.

如果在没有TRACE_FILE_ROLLOVER选项的情况下指定此参数,则当使用的磁盘空间超过max_file_size指定的数量时,跟踪将停止记录到文件。

我不明白为什么你不能循环浏览文件并将它们加载到表格或应用程序中。不应该那么难。