Quantcast
Channel: MSDN Blogs
Viewing all articles
Browse latest Browse all 29128

Trace Parser Tip - How to find a SQL statement across all sessions

$
0
0

I recently had a trace from a customer that had around 60 different sessions. I was trying to find a specific SQL statement in one of the sessions that I had identified in a SQL blocking trace.

However I didn’t want to manually select each session to look for it, and there is no other way to search across all sessions. So I created the following query you can run against the Trace Parser database to locate the session(s) with the statement in:

--Find SQL in all traces

-- Suggest you create the following to improve performance

--CREATE NONCLUSTERED INDEX IX_USP_QueryStatementHash

--ON [dbo].[TraceLines] ([CallTypeId],[QueryStatementHash])

SELECT [T4].[TraceId], [T6].[TraceName], [T5].[UserName], [T2].Statement

FROM [dbo].[TraceLines] AS [T1]

INNER JOIN [dbo].[QueryStatements] AS [T2] ON [T1].[QueryStatementHash] = [T2].[QueryStatementHash]

INNER JOIN [dbo].[UserSessionProcesses] AS [T3] ON [T1].[UserSessionProcessId] = [T3].[UserSessionProcessId]

INNER JOIN [dbo].[UserSessions] AS [T4] ON [T3].[SessionId] = [T4].[SessionId]

INNER JOIN [dbo].[Users] AS [T5] ON [T4].[UserId] = [T5].[UserId]

INNER JOIN [dbo].[Traces] AS [T6] ON [T4].[TraceId] = [T6].[TraceId]

WHERE ([T2].[Statement] LIKE '%queryhere%') AND ([T1].[CallTypeId] = 64)

Edit the %queryhere% above to be something like:

“SELECT A.SALESID,A.DELIVERYNAME,A.ORDERING,A.SALESNAME%”

I would not recommend you try to find the full statement; only use the start of the statement as in the example above.

Use the results to easily find the session in trace parser you wanted to investigate.


Viewing all articles
Browse latest Browse all 29128

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>