什么是sql server连接字符串中的“连接超时”?

时间:2013-11-22 10:37:00

标签: sql sql-server

大家好我有以下连接字符串(从sql server的属性获取):

Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\myUser\Desktop\adoBanche\Banche\bin\Debug\banche.mdf;Integrated Security=True;Connect Timeout=30

我不明白是什么意思Timeout=30。有人可以解释一下是什么意思吗?

8 个答案:

答案 0 :(得分:51)

这是创建连接的超时,而不是超过该连接的命令超时。

例如参见http://www.connectionstrings.com/all-sql-server-connection-string-keywords/ (请注意,该属性为“连接超时”(或“连接超时”),而不仅仅是“超时”)

答案 1 :(得分:9)

Connect Timeout=30表示在30秒内sql server应该建立连接。其他明智的当前连接请求将被取消。它用于避免连接尝试无限期等待。

答案 2 :(得分:6)

  

连接超时= 30 表示数据库服务器有30秒的时间建立连接。

连接超时指定必须与指定服务器建立连接的时间限制(以秒为单位),否则抛出异常,即它指定允许程序运行多长时间在建立数据库连接时保持不变。

DataSource=server;
InitialCatalog=database;
UserId=username;
Password=password;
Connection Timeout=30

SqlConnection.ConnectionTimeout。 指定SQL Server服务响应连接尝试的秒数。这始终设置为连接字符串的一部分。

注意:

  • 该值以秒为单位表示,而不是以毫秒为单位。

  • 默认值为30秒。

  • 值为0意味着无限期等待,永远不会超时。

此外, SqlCommand.CommandTimeout 指定在SQL Server上运行的特定查询的超时值,但这是通过SqlConnection对象/设置设置的(取决于您的编程语言),而不是在连接字符串中,即它指定在运行命令时允许程序保持多长时间。

答案 3 :(得分:3)

获取在终止尝试并生成错误之前尝试建立连接时等待的时间。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout%28v=vs.110%29.aspx

答案 4 :(得分:1)

连接请求和超时错误之间的最长时间。当客户端尝试建立连接时,如果达到超时等待限制,它将停止尝试并引发错误。

答案 5 :(得分:1)

获取在终止尝试并生成错误之前尝试建立连接时等待的时间。 (MSDN,SqlConnection.ConnectionTimeout属性,2013)

答案 6 :(得分:1)

默认情况下,连接超时为240,但如果您正面临连接超时的问题,那么您可以增加到" 300" "连接超时= 300"

答案 7 :(得分:1)

连接方式简而言之

程序与数据库服务器之间的连接依赖于握手。

这意味着打开连接时,建立连接的线程会将网络数据包发送到数据库服务器。然后,该线程将暂停,直到从数据库服务器接收到有关此连接的网络数据包或连接超时到期为止。

连接超时

连接超时以秒为单位,从打开连接点开始。

当超时到期时,线程将继续,但是在报告连接失败后它将继续这样做。

  • 如果在连接字符串中没有为连接超时指定任何值,则默认值为30

  • 大于零的值是指它放弃多少秒,例如值为10表示要等待10秒。

  • 值为0 表示永不放弃等待连接

注意:建议不要将值设置为0,因为连接请求数据包或服务器响应数据包都有可能丢失。您是否准备好甚至整天等待可能永远不会出现的答复?

我应该将“连接超时”值设置为什么?

此设置应取决于您的网络速度以及您准备允许线程等待响应的时间。

作为一个示例,对于一天中每小时重复一次的任务,我知道我的网络始终在1秒钟内做出响应,因此为了安全起见,我将连接超时设置为2。然后,我将重试三遍,然后放弃并提出支持票或升级类似的现有支持票。

测试您自己的网络速度,并考虑当连接一次断开时失败,以及反复或偶尔失败时该怎么办。