IIS SQL Server:连接池:为什么要建立新连接而不是重用现有连接?

时间:2013-09-06 15:33:31

标签: sql-server sql-server-2008 iis connection-pooling

在应用加载期间,单个用户将向池中添加10个连接。然后如果我加载另一个用户,我将总共有20个连接。

为什么要将新连接添加到池而不是重用连接?我可以看到有可用的连接在几分钟内没有使用但它仍然会打开新的连接。

  • 它的连接字符串相同
  • 我运行了SQL Sever Profiler我可以看到每次调用后都会调用sp_reset_connection。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果连接来自其他计算机,则无法合并连接。连接要求两个端点都是连接。如果正确使用连接池,应用程序将实例化连接(从池中),使用连接,然后在交换完成后立即将其删除。

如果您正在编写单线程桌面应用程序,另一个常见且简单的策略是打开连接,只要应用程序正在运行,就让该连接保持打开状态。

您可以控制创建的连接数等,有关连接池的更多详细信息,请参阅MS article

IIRC,除非连接字符串相同,否则不会共享连接池。