Closing(),但不处理()SQL连接 - 效果

时间:2013-01-14 15:10:55

标签: sql-server connection

我阅读了有关处理SQL连接的this问题。

我的问题是,简单地关闭一个sql连接有多糟糕,但是没有丢弃它? 我们有一个简单的关闭功能,但从未处理过,每天使用1000次。 简单地关闭它是否更好,或者关闭和处理它会更好吗?

我知道dispose()也会关闭连接,但是我想知道为什么close不会处理连接。

2 个答案:

答案 0 :(得分:4)

关于连接的重要事情是关闭它们,以便它们返回到连接池。

因此,处理和关闭连接之间几乎没有区别,只要您对关闭而不重用连接有所规范。

但是,习惯在using语句中包装连接的创建意味着你永远不会忘记关闭它。

这是一个很好的习惯用法 - 实现IDisposable的任何对象的创建都应该包含在using语句中,并且这样的成语是一个很好的跟随连接的对象好。

答案 1 :(得分:0)

取决于它是否超出范围。 如果是这样,它将被关闭,并返回连接池(假设你没有禁用它)。 因此,当您正在进行隐式或显式调用时,会使您的意图清晰,并使该连接“立即”可在池中重用。

想法是说服开发人员快速进出数据库。很多小交易。不旧的风格打开一个连接,然后隐藏它,所以没有其他人可以得到它,以防万一它再次需要。

如果使用连接池,则using子句等同于Create,open,Close。 如果它关闭,则using子句等同于create,open,close,Dispose。

在任何一种情况下,真正的交易是确保它超出范围。除非常罕见的情况,连接应该是本地参考,并具有这种特定用途的寿命。您通常不会在运行时实例化一个并使其成为主要形式的属性。