Quantcast
Channel: SQLServerCentral » SQL Server 2014 » Development - SQL Server 2014 » Latest topics
Viewing all articles
Browse latest Browse all 3145

server side trace

$
0
0
Hi Guys,I am currently setting up a server side trace that will run constantly on a server for one particular database. The data is then being loaded back into a table.When looking back on some of the data that has been loaded in I am really confused as there appears to be quite a lot of dynamic sql being ran under events 10 and 12 (batch completed and rpc completed) meaning that the users query count is being massively inflated. The person who supposedly ran this dynamic sql said that they don't know anything about it, leading me to believe that it may be some sort of background job that I should maybe filter out. The trouble is that I don't know how to filter it out and it.Here is the code for my trace definition...[code="sql"]ALTER PROCEDURE [dbo].[sp_StartTrace] -- sp_StartTrace 'CoreDW' -- Add the parameters for the stored procedure here @database nvarchar(100)ASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here -- Create a Queuedeclare @rc intdeclare @TraceID intdeclare @maxfilesize bigintdeclare @traceoptions intdeclare @starttime datetimedeclare @tracepath nvarchar(100)declare @tracename nvarchar(256)declare @datetime nvarchar(30)set @traceoptions = 0set @maxfilesize = 10set @starttime = getdate()set @datetime = CONVERT(VARCHAR(10),@starttime,112) + REPLACE(CONVERT(VARCHAR(10),@starttime,108),':','')set @tracepath = N'P:\Traces\MyTrace_'set @tracename = @tracepath + @datetime-- close off any current tracesif exists (select * from sys.traceswhere is_default = 0and path like @tracepath + '%')begindeclare @sqlstop VARCHAR(2000)declare @sqldelete VARCHAR(2000)-- stop the traceset @sqlstop = (SELECT STUFF('; ' + 'exec sp_trace_setstatus ' + ( SELECT cast(id AS NVARCHAR(3)) id FROM sys.traces WHERE id = t.id ) + ', 0',1,1,'')FROM sys.traces tWHERE is_default = 0 AND id = t.id AND path LIKE @tracepath + '%'FOR XML path(''))--print @sqlstopexec (@sqlstop)-- delete the traceset @sqldelete = (SELECT STUFF('; ' + 'exec sp_trace_setstatus ' + ( SELECT cast(id AS NVARCHAR(3)) id FROM sys.traces WHERE id = t.id ) + ', 2',1,1,'')FROM sys.traces tWHERE is_default = 0 AND id = t.id AND path LIKE @tracepath + '%'FOR XML path(''))--print @sqldeleteexec (@sqldelete)end-- Create the trace with the name of the output file - .trc extension is added to filenameexec @rc = sp_trace_create @TraceID output, 0, @tracename, @maxfilesize, null if (@rc != 0) goto error-- Set the eventsdeclare @on bitset @on = 1-- Audit Login eventsexec sp_trace_setevent @TraceID, 14, 1, @onexec sp_trace_setevent @TraceID, 14, 9, @onexec sp_trace_setevent @TraceID, 14, 6, @onexec sp_trace_setevent @TraceID, 14, 10, @onexec sp_trace_setevent @TraceID, 14, 14, @onexec sp_trace_setevent @TraceID, 14, 11, @onexec sp_trace_setevent @TraceID, 14, 12, @onexec sp_trace_setevent @TraceID, 14, 35, @onexec sp_trace_setevent @TraceID, 14, 26, @onexec sp_trace_setevent @TraceID, 14, 8, @on-- Audit Logout eventsexec sp_trace_setevent @TraceID, 15, 15, @onexec sp_trace_setevent @TraceID, 15, 16, @onexec sp_trace_setevent @TraceID, 15, 9, @onexec sp_trace_setevent @TraceID, 15, 13, @onexec sp_trace_setevent @TraceID, 15, 17, @onexec sp_trace_setevent @TraceID, 15, 6, @onexec sp_trace_setevent @TraceID, 15, 10, @onexec sp_trace_setevent @TraceID, 15, 14, @onexec sp_trace_setevent @TraceID, 15, 18, @onexec sp_trace_setevent @TraceID, 15, 11, @onexec sp_trace_setevent @TraceID, 15, 12, @onexec sp_trace_setevent @TraceID, 15, 35, @onexec sp_trace_setevent @TraceID, 15, 26, @onexec sp_trace_setevent @TraceID, 15, 8, @on-- ExistingConnection eventsexec sp_trace_setevent @TraceID, 17, 12, @onexec sp_trace_setevent @TraceID, 17, 1, @onexec sp_trace_setevent @TraceID, 17, 9, @onexec sp_trace_setevent @TraceID, 17, 6, @onexec sp_trace_setevent @TraceID, 17, 10, @onexec sp_trace_setevent @TraceID, 17, 14, @onexec sp_trace_setevent @TraceID, 17, 11, @onexec sp_trace_setevent @TraceID, 17, 35, @onexec sp_trace_setevent @TraceID, 17, 26, @onexec sp_trace_setevent @TraceID, 17, 8, @on-- RPC:Completed eventsexec sp_trace_setevent @TraceID, 10, 15, @onexec sp_trace_setevent @TraceID, 10, 16, @onexec sp_trace_setevent @TraceID, 10, 1, @onexec sp_trace_setevent @TraceID, 10, 9, @onexec sp_trace_setevent @TraceID, 10, 17, @onexec sp_trace_setevent @TraceID, 10, 10, @onexec sp_trace_setevent @TraceID, 10, 18, @onexec sp_trace_setevent @TraceID, 10, 11, @onexec sp_trace_setevent @TraceID, 10, 12, @onexec sp_trace_setevent @TraceID, 10, 13, @onexec sp_trace_setevent @TraceID, 10, 6, @onexec sp_trace_setevent @TraceID, 10, 14, @onexec sp_trace_setevent @TraceID, 10, 35, @onexec sp_trace_setevent @TraceID, 10, 26, @onexec sp_trace_setevent @TraceID, 10, 8, @on-- SQL:BatchCompleted eventsexec sp_trace_setevent @TraceID, 12, 15, @onexec sp_trace_setevent @TraceID, 12, 16, @onexec sp_trace_setevent @TraceID, 12, 1, @onexec sp_trace_setevent @TraceID, 12, 9, @onexec sp_trace_setevent @TraceID, 12, 17, @onexec sp_trace_setevent @TraceID, 12, 6, @onexec sp_trace_setevent @TraceID, 12, 10, @onexec sp_trace_setevent @TraceID, 12, 14, @onexec sp_trace_setevent @TraceID, 12, 18, @onexec sp_trace_setevent @TraceID, 12, 11, @onexec sp_trace_setevent @TraceID, 12, 12, @onexec sp_trace_setevent @TraceID, 12, 13, @onexec sp_trace_setevent @TraceID, 12, 26, @onexec sp_trace_setevent @TraceID, 12, 8, @on-- SQL:BatchStarting eventsexec sp_trace_setevent @TraceID, 13, 12, @onexec sp_trace_setevent @TraceID, 13, 1, @onexec sp_trace_setevent @TraceID, 13, 9, @onexec sp_trace_setevent @TraceID, 13, 6, @onexec sp_trace_setevent @TraceID, 13, 10, @onexec sp_trace_setevent @TraceID, 13, 14, @onexec sp_trace_setevent @TraceID, 13, 11, @onexec sp_trace_setevent @TraceID, 13, 26, @onexec sp_trace_setevent @TraceID, 13, 8, @on-- SP:Completed eventsexec sp_trace_setevent @TraceID, 43, 1, @onexec sp_trace_setevent @TraceID, 43, 6, @onexec sp_trace_setevent @TraceID, 43, 8, @onexec sp_trace_setevent @TraceID, 43, 9, @onexec sp_trace_setevent @TraceID, 43, 10, @onexec sp_trace_setevent @TraceID, 43, 11, @onexec sp_trace_setevent @TraceID, 43, 12, @onexec sp_trace_setevent @TraceID, 43, 13, @onexec sp_trace_setevent @TraceID, 43, 14, @onexec sp_trace_setevent @TraceID, 43, 15, @onexec sp_trace_setevent @TraceID, 43, 26, @onexec sp_trace_setevent @TraceID, 43, 34, @onexec sp_trace_setevent @TraceID, 43, 35, @on-- Filter out the SQL Profiler eventsexec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'-- filter on database nameexec sp_trace_setfilter @TraceID, 35, 0, 0, @database-- Set the trace status to startexec sp_trace_setstatus @TraceID, 1-- display trace id for future referencesselect TraceID=@TraceIDgoto finisherror: select ErrorCode=@rcENDfinish: [/code]Regarding the unwanted rows that are coming back from the trace, I have attached the TextData from three example rows that will show you the queries being ran. As you can see I am already applying a few filters to the trace to filter on database name etc. if anyone could tell me how to filter the unwanted rows away that would be great.** edit **Sorry I should have mentioned, this is happening for all users and not just the one user I mentioned.

Viewing all articles
Browse latest Browse all 3145

Trending Articles