我们应该在开发应用程序时使用哪种策略来进行连接管理?

时间:2009-12-31 06:39:17

标签: database-connection

在开发使用数据库作为数据存储的基于Windows的应用程序时,哪种连接管理更好?基于Web的应用程序怎么样?

  1. 当用户加载应用程序的第一种形式时,全局 连接打开并关闭应用程序的最后一个表单 连接关闭并处理。
  2. 对于应用程序中的每个表单,都有本地连接 (表单范围)以及用户想要执行的操作时 插入,更新,删除,搜索,...应用程序使用 连接和卸载表单连接也关闭和 处置。
  3. 对于应用程序形式中的每个操作,都有一个 本地连接(程序范围)以及用户想要执行的时间 像插入,更新,删除,搜索等操作 应用程序使用过程连接,并在每个结束时 表格内的程序,连接也关闭并处理。

2 个答案:

答案 0 :(得分:1)

使用#3

您应该尝试只在需要时保持连接打开。

另外看看

  

连接数据库服务器   通常由几个组成   耗时的步骤。身体上的   通道,如套接字或命名   必须建立管道,最初   必须与服务器握手,   连接字符串信息必须   要解析,连接必须是   由服务器验证,检查   必须参加竞选   当前交易,等等。

     

在实践中,大多数应用程序都使用   只有一个或几个不同   连接配置。这个   意味着在申请期间   执行,许多相同的连接   将反复打开和关闭。   最大限度地降低开放成本   连接,ADO.NET使用   称为优化技术   连接池。

     

连接池减少了数量   新连接必须是的时代   打开。合伙人保持所有权   物理连接。它管理   通过保持一组的连接来建立联系   每个给定的活动连接   连接配置。每当一个   用户调用在连接上打开,   pooler寻找可用的   池中的连接。如果汇集了   连接可用,它返回它   调用者而不是打开新的   连接。当应用程序调用时   关闭连接,pooler   将其返回到合并的活动集   连接而不是关闭它。   一旦连接返回到   游泳池,它准备重新使用   下一次公开电话。

答案 1 :(得分:1)

这是一个非常广泛的问题。但通常,对于任何数据库服务器和应用程序环境,打开并保持新连接都是一项昂贵的操作。这就是为什么你绝对不希望从一个客户端打开多个连接,并且应该坚持连接的进程范围。

在使用数据库服务器的桌面应用程序中,处理连接的策略在很大程度上取决于数据库使用模式。比如说,如果应用程序在5分钟内读取或写入了很多内容,然后几小时内没有对数据库执行任何操作,那么始终保持连接打开是没有意义的(假设有许多其他客户端)。您可能会为关闭连接引入某种超时。

Web服务器的情况很大程度上取决于所使用的技术。比方说,在PHP中,每个请求都是一个“全新启动”的WRT数据库连接。您可以为每次单击鼠标打开和关闭连接。虽然流行的Java应用程序服务器具有数据库连接池,但为许多HTTP请求处理线程重用相同的连接实例。