После дальнейших исследований, кажется, лучше использовать команды sp_trace, а не профилировщик из-за эффективности. Я создал трассировку, используя этот скрипт, чтобы найти неправильно сформированный SQL.
declare @trace_id INT
exec sp_trace_create @traceid = @trace_id OUTPUT,
@options = 2,
@tracefile = N'c:\trace_xxx' -- change filename to one that makes better sense
select @trace_id AS trace_id
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 10
, @columnid = 1
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 12
, @columnid = 1
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 33
, @columnid = 1
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 10
, @columnid = 14
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 12
, @columnid = 14
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 33
, @columnid = 14
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 10
, @columnid = 15
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 12
, @columnid = 15
, @on = 1
exec sp_trace_setevent @traceid = @trace_id
, @eventid = 33
, @columnid = 15
, @on = 1
exec sp_trace_setfilter @traceid = @trace_id
, @columnid = 31
, @logical_operator = 0
, @comparison_operator = 2
, @value = 0
exec sp_trace_setfilter @traceid = @trace_id
, @columnid = 1
, @logical_operator = 0
, @comparison_operator = 7
, @value = N'exec sp_reset_connection'
exec sp_trace_setstatus @traceid = @trace_id , @status = 1