【问题标题】:Creating an unlimited SqlServer Trace创建无限制的 SqlServer 跟踪
【发布时间】:2008-11-20 12:16:31
【问题描述】:

在我的应用程序上,我正在创建一个实时跟踪(不知道如何,但我是!),在 SQlServer 中的 sp_trace_create 函数上,我知道 @maxfilesize 默认为 5,但在我的应用程序上它将被停止当用户想要停止它时......有什么想法可以做到吗?


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

【问题讨论】:

    标签: sql-server trace sql-server-profiler


    【解决方案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

    【讨论】:

    • 是的,我以前用过那个,但是我怎样才能创建一个不会在 maxmimumfilesize 处停止的文件??无论最大文件大小如何,我都希望它一直运行直到手动停止......
    【解决方案2】:

    根据文档,您想要做的事情是不可能的:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-26
      • 2020-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多