0

我有一些查询 SQL 2005 Express 数据库的 ASP(经典)代码。我目前正在以编程方式处理如果此数据库出现故障,则在有人尝试连接但无法连接时处理错误。我捕获错误并使用会话变量绕过对该数据库的后续数据库查询。

我的问题是第一个查询需要大约 20 秒才能超时。

我想减少这个超时长度,但找不到代码或数据库中的哪个属性是正确的减少。

我试过在代码中遵循;

con.CommandTimeout = 5

con.CONNECTIONTIMEOUT = 5

请问有什么建议吗?

谢谢,

安迪

4

2 回答 2

0

首先,您应该调查数据库为什么会下降。我们为数百个客户端管理服务器,并且从未遇到过数据库宕机的问题,除非它是计划维护。

除此之外,您已经选择了正确的属性。

“连接超时”设置在连接字符串中,控制客户端等待建立与数据库的连接的时间。在大多数情况下,降低此值应该是安全的——建立连接永远不会花费很长时间。

“CommandTimeout”是 IDbCommand 实现的一个属性,控制客户端等待特定查询返回的时间。如果您知道查询所用的时间不会超过您设置的值,则可以降低此值。

于 2009-12-14T15:34:18.030 回答
0

最终使用 ADODB.Connection 字符串中的“连接超时”选项。

例如

Set con = Server.CreateObject( "ADODB.Connection" )
con.Open "Provider=SQLOLEDB;Server=databaseserver;User ID=databaseuser;Password=databasepassword;Initial Catalog=databasename;Connect Timeout=5;"

If Err.Number = 0 And con.Errors.Count = 0 Then
    'connected to database successfully
Else
    'did not connect to database successfully within timeout period specified (5 seconds in this example)
End If
于 2013-01-22T12:10:32.283 回答