让SQL连接保持打开有什么缺点?

时间:2010-01-26 12:57:12

标签: c# sql-server sqlconnection sqlconnection.close

这似乎是一个简单的问题,但我想知道不调用“close()”函数的缺点。

6 个答案:

答案 0 :(得分:10)

迟早,您将遇到“已达到最大连接限制”错误。我称这是一个主要的劣势。

答案 1 :(得分:7)

除了耗尽连接池(因为到目前为止大多数答案都是如此),您将面临锁定数据的危险。

如果您正在读取或写入表,某些锁定语义将导致某些行被锁定到其他连接。如果您在连接上有任何打开的事务,则尤其如此。

读取和写入可能会失败,应用程序将在整个地方抛出异常。

简而言之,始终关闭连接。

答案 2 :(得分:1)

连接池将填满,任何新连接都将超时,等待池中的新连接。

答案 3 :(得分:1)

每个与SQL Server的连接都需要内存分配。

因此,您打开的连接越多,正在使用和保留的内存就越多,这可能会被更好地利用。

如果您想知道SQL Server中的连接使用了多少内存,请查看以下参考。

Memory Used by SQL Server Objects

答案 4 :(得分:0)

已打开与数据库服务器的连接。假设有100个程序命中同一个服务器......

你也应该处理它

答案 5 :(得分:0)

快速简单的回答是,越早关闭,连接池就可以越快地重新使用连接。