Tim*_*m J 5 sql-server-2008 sql-server t-sql trace
我想设置服务器端重播跟踪并编写设置跟踪的脚本。但是,我希望跟踪在 12 小时后或创建 10 个 1GB 文件后结束。通常对于最大文件数,系统会删除最旧的文件,然后创建新文件。在我的情况下,这将以文件 2-11 而不是所需的 1-10 结束。我有空间限制,需要从头到尾重播所有步骤。我可以将文件大小限制设置为 10GB。我认为文件大小有 1GB 的限制,但这可能只是 GUI 中的一个限制。
关于如何在脚本达到 10 个文件后停止脚本的任何想法?
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @DateTime datetime
declare @maxfilecount int
set @DateTime = DATEADD(HOUR,12,GETDATE())
set @maxfilesize = 1024
set @maxfilecount = 10
exec @rc = sp_trace_create @TraceID output, 2, N'D:\Output\Trace', @maxfilesize, @Datetime, @maxfilecount
Run Code Online (Sandbox Code Playgroud)
我想出了一个办法。
declare @files table (ID int IDENTITY, FileName varchar(100))
insert into @files execute xp_cmdshell 'dir d:\Output\*.trc /b'
Run Code Online (Sandbox Code Playgroud)
检查文件计数,如果它达到我的限制,则查找跟踪 ID 并使用 sp_trace_setstatus 来停止它。由于我的跟踪文件需要一段时间才能达到文件大小限制,因此我每 5 或 10 分钟在代理上运行一次此作业。
归档时间: |
|
查看次数: |
312 次 |
最近记录: |