2010-06-21 2 views
0

У меня есть настройки SQL Profiler следующим образом -Помощь с SQL Trace

Шаблон: Tuning

Сохранить dbo.myTable

выбора Событие: Продолжительность больше или равна 2000 (мс)

Это запишет TextData, Duration, SPID, DatabaseID, DatabaseName, ObjectType, LoginName для событий RPC: Completed, SP: StmtCompleted & SQL: BatchCompleted.

Я экспортировал скрипт для SQL Trace, и был создан скрипт ниже. Однако мне нужна трассировка для записи в таблицу базы данных, а не в файл. Как изменить скрипт для записи в таблицу db?

/****************************************************/ 
/* Created by: SQL Server Profiler 2005    */ 
/* Date: 21/06/2010 09:32:56   */ 
/****************************************************/ 


-- Create a Queue 
declare @rc int 
declare @TraceID int 
declare @maxfilesize bigint 
set @maxfilesize = 5 

-- Please replace the text InsertFileNameHere, with an appropriate 
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension 
-- will be appended to the filename automatically. If you are writing from 
-- remote server to local drive, please use UNC path and make sure server has 
-- write access to your network share 

exec @rc = sp_trace_create @TraceID output, 0, N'InsertFileNameHere', @maxfilesize, NULL 
if (@rc != 0) goto error 

-- Client side File and Table cannot be scripted 

-- Set the events 
declare @on bit 
set @on = 1 
exec sp_trace_setevent @TraceID, 10, 1, @on 
exec sp_trace_setevent @TraceID, 10, 3, @on 
exec sp_trace_setevent @TraceID, 10, 11, @on 
exec sp_trace_setevent @TraceID, 10, 35, @on 
exec sp_trace_setevent @TraceID, 10, 12, @on 
exec sp_trace_setevent @TraceID, 10, 13, @on 
exec sp_trace_setevent @TraceID, 45, 1, @on 
exec sp_trace_setevent @TraceID, 45, 3, @on 
exec sp_trace_setevent @TraceID, 45, 11, @on 
exec sp_trace_setevent @TraceID, 45, 35, @on 
exec sp_trace_setevent @TraceID, 45, 12, @on 
exec sp_trace_setevent @TraceID, 45, 28, @on 
exec sp_trace_setevent @TraceID, 45, 13, @on 
exec sp_trace_setevent @TraceID, 12, 1, @on 
exec sp_trace_setevent @TraceID, 12, 3, @on 
exec sp_trace_setevent @TraceID, 12, 11, @on 
exec sp_trace_setevent @TraceID, 12, 35, @on 
exec sp_trace_setevent @TraceID, 12, 12, @on 
exec sp_trace_setevent @TraceID, 12, 13, @on 


-- Set the Filters 
declare @intfilter int 
declare @bigintfilter bigint 

set @bigintfilter = 2000000 
exec sp_trace_setfilter @TraceID, 13, 0, 4, @bigintfilter 

-- Set the trace status to start 
exec sp_trace_setstatus @TraceID, 1 

-- display trace id for future references 
select [email protected] 
goto finish 

error: 
select [email protected] 

finish: 
go 

ответ

1

Вы не можете. Profiler делает это с помощью поставщика набора строк.

Для серверных следов доступен только поставщик flatfile. Его легко вставить из файла в таблицу или просто прочитать файл, как если бы это была таблица с fn_trace_gettable.