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?
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.)