1

我在 SQL Server 2005 Enterprise 上运行服务器端跟踪并收到以下错误:

消息 19064,级别 16,状态 1,过程 sp_trace_create,第 1 行
请求的跟踪停止时间已过。

在执行正式的服务器端跟踪之前,我将此信息用作此跟踪脚本的测试。根据该站点,我需要一个DATETIME变量(在这种情况下@stop为 ),如果NULL,它将无休止地继续。下面是与此相关的代码:

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @end datetime     

set @maxfilesize = 20
set @end = NULL

exec @rc = sp_trace_create 
    @TraceID output
    , 0
    , N'\\MyFilePath\trace'
    , @maxfilesize
    , @end
    , 100
if (@rc != 0) goto error

如果我从网站上接受关于做一个时间框架(比如两个小时)的建议,或者如果我这样做NULL(见上文),我也会收到同样的错误消息。例如,如果我将参数设置为 100,我不会收到错误消息,但会收到另一条错误消息,其中指出以下内容:

消息 19064,级别 16,状态 1,过程 sp_trace_create,第 1 行 请求的跟踪停止时间已过。

除了该错误之外,我没有收到任何像此跟踪应生成的输出文件。请注意,我假设无效的参数是 @end 因为当我将它更改为 - 应该是无效的 - 其他值时,它会以不同的错误执行。

与此错误无关的剩余代码如下:

-- Trace Events: REMOVED
-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler - 9cab2330-a33d-40d4-be59-cf5def384983'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1
--sp_trace_setstatus  @traceid =  2,  @status =  0    -- Trace stop

-- display trace id for future references
select TraceID=@TraceID
goto finish

error: 
select ErrorCode=@rc

finish: 
go
4

2 回答 2

1

设置为 0 参数到 2。

exec @rc = sp_trace_create 
    @TraceID output
    , 2 -- THIS CHANGED FROM 0 to 2
    , N'\\MyFilePath\trace'
    , @maxfilesize
    , @end
    , 100 -- THIS NO LONGER GENERATES THE ERROR
于 2016-05-11T19:22:29.250 回答
0

我的错误,包含在网站上:

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @end datetime     

set @maxfilesize = 20
set @end = NULL

exec @rc = sp_trace_create 
    @TraceID output
    , 0
    , N'\\MyFilePath\trace'
    , @maxfilesize
    , @end
    , 100 -- THIS GENERATES THE ERROR
if (@rc != 0) goto error

当我删除 时, 100,它运行良好。 根据我最初引用的站点,此参数限制了创建的文件数量:

如果要限制跟踪创建的文件数(例如,10 个文件),请将 10 添加到参数列表的末尾。这不会在创建为@filecount 指定的文件数后停止跟踪。相反,当跟踪创建一个新文件时,它会删除该跟踪的最旧文件。因此,如果您从 Trace_1、Trace2 ... Trace_10 开始,然后创建 Trace_11,则 Trace_1 将被删除。这可以防止您的硬盘驱动器被跟踪文件填满。

我将继续研究为什么系统不接受此参数(因为它对限制创建的文件数量很有用),这可能是兼容性问题或与版本有关的问题。

于 2013-05-28T15:48:36.653 回答