当您对数据库执行查询时,什么是合理的超时策略。通常我只是保留默认值,但想知道是否有合理的经验法则? DBA通常喜欢看什么?
答案 0 :(得分:2)
我认为这实际上取决于你在做什么。如果我们谈论报告,那么你可能需要比你做简单的选择/插入/删除时更高的超时。
我们通常只允许非报告查询30秒,报告服务器3米。
答案 1 :(得分:1)
如果使用SqlCommand和SqlConnection类连接到SQL Server,则需要考虑两个超时:
SqlConnection.ConnectionTimeout
连接数据库所需的时间,默认为30秒,在我看来太长了。我们将其减少到5秒。
并且
SqlCommand.CommandTimeout
这显然取决于您正在运行的查询。
答案 2 :(得分:1)
这是其中一个“它取决于”的答案。数百万行数据上有很多昂贵的查询,使用默认设置超时。
我使用的策略是将其设置为0
(换句话说,无超时),然后使用SQL事件探查器(运行跟踪)来获取持续时间。我多次1.15
给自己一个15%的缓冲区,这样我就不会因为系统延迟或只是“慢”执行而超时。但在我看来,如果115%的时间已经过了测试但没有完成,那么10次中有9次出错并且超时是有序的。