在开发使用数据库作为数据存储的基于Windows的应用程序时,哪种连接管理更好?基于Web的应用程序怎么样?
答案 0 :(得分:1)
使用#3
您应该尝试只在需要时保持连接打开。
另外看看
连接数据库服务器 通常由几个组成 耗时的步骤。身体上的 通道,如套接字或命名 必须建立管道,最初 必须与服务器握手, 连接字符串信息必须 要解析,连接必须是 由服务器验证,检查 必须参加竞选 当前交易,等等。
在实践中,大多数应用程序都使用 只有一个或几个不同 连接配置。这个 意味着在申请期间 执行,许多相同的连接 将反复打开和关闭。 最大限度地降低开放成本 连接,ADO.NET使用 称为优化技术 连接池。
连接池减少了数量 新连接必须是的时代 打开。合伙人保持所有权 物理连接。它管理 通过保持一组的连接来建立联系 每个给定的活动连接 连接配置。每当一个 用户调用在连接上打开, pooler寻找可用的 池中的连接。如果汇集了 连接可用,它返回它 调用者而不是打开新的 连接。当应用程序调用时 关闭连接,pooler 将其返回到合并的活动集 连接而不是关闭它。 一旦连接返回到 游泳池,它准备重新使用 下一次公开电话。
答案 1 :(得分:1)
这是一个非常广泛的问题。但通常,对于任何数据库服务器和应用程序环境,打开并保持新连接都是一项昂贵的操作。这就是为什么你绝对不希望从一个客户端打开多个连接,并且应该坚持连接的进程范围。
在使用数据库服务器的桌面应用程序中,处理单连接的策略在很大程度上取决于数据库使用模式。比如说,如果应用程序在5分钟内读取或写入了很多内容,然后几小时内没有对数据库执行任何操作,那么始终保持连接打开是没有意义的(假设有许多其他客户端)。您可能会为关闭连接引入某种超时。
Web服务器的情况很大程度上取决于所使用的技术。比方说,在PHP中,每个请求都是一个“全新启动”的WRT数据库连接。您可以为每次单击鼠标打开和关闭连接。虽然流行的Java应用程序服务器具有数据库连接池,但为许多HTTP请求处理线程重用相同的连接实例。