8

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

4

6 回答 6

10

迟早,您会遇到“已达到最大连接限制”错误。我认为这是一个主要缺点。

于 2010-01-26T12:58:35.347 回答
7

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

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

然后读取和写入可能会失败,并且应用程序将到处抛出异常。

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

于 2010-01-26T13:02:09.917 回答
1

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

于 2010-01-26T12:58:54.793 回答
1

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

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

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

SQL Server 对象使用的内存

于 2010-01-26T13:48:51.283 回答
0

与数据库服务器的连接已打开。假设您有 100 多个程序访问同一台服务器...

你也应该处理它

于 2010-01-26T12:59:42.973 回答
0

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

于 2010-01-26T12:59:56.153 回答