views:

380

answers:

4

I'm trying to find SQL statements that timed out using the SQL 2005 profiler. Is there a way to set such a filter?

+2  A: 

In Profiler, you can add the event "Attention" under "Errors and Warnings". It's definition is

Collects all attention events, such as client interrupt request or when a client connection is broken.

As far as other errors (deadlocks, contraints, etc), try "Execution Warning" (reports warning that occurred during the execution of SQL statement or procedure) or "User Error Message" (the error message displayed to the user in the case of an error or exception).

jons911
+1. ALso, if the timeout is due to a dealock, collect the deadlock graph event.
Mitch Wheat
A: 

One option, if you know what your client configured timeouts are set to (ie. 30 seconds by default), you can set a filter on your trace to only collect events with a duration greater than or equal to your timeout (minus a second or two).

duckworth
A: 

Yes.

  • Check "All Events"
  • Go to the lock section
  • Specify the "lock: Timeout" events

Lock event in Books Online

Now, this works with server side locks (@@LOCK_TIMEOUT <> 0). I don't know if a client side timeout will be trapped.

gbn
This will only catch timeouts caused by locking. Long running queries timed out by the calling application will not necessarily have locking issues.
jons911
A: 

Were any of these reponses helpful, or have we not helped solve your porblem?

jons911