SqlCommand object, what length of time for CommandTimeout?

bobble14988 picture bobble14988 · Aug 11, 2011 · Viewed 43.3k times · Source

How do I decide what length of time to use as a timeout when using an SqlCommand object?

On parts of the code I'm working on (written by somebody else) I have:

cmd.CommandTimeout = 60;

Which I think is quite short. However, I have seen some people in forums talking about setting it to 30000, which seems too long.

How do I know what is best for my application?

Answer

Jon Skeet picture Jon Skeet · Aug 11, 2011

It seems that people are confused as to whether this is seconds or milliseconds. The documentation states that the timeout is in seconds. A 1-minute timeout seems reasonable for most queries. An 8+ hour timeout doesn't seem reasonable.

Do you have queries you're expecting to take longer than a minute? If so, raise it to a value you expect to be higher than anything you'd see if everything is working properly, but not so high as to take forever to alert you to a problem. (For example, you might go from 1 minute to 5 minutes.)