当前位置: 首页 > 面试题库 >

可以保持sql连接打开吗?

阴禄
2023-03-14
问题内容

我正在通过com端口连续接收数据并进行一些解码。解码完成后,我必须将结果存储在sql数据库中。我在想,因为解码是每秒完成数十次(在while循环中始终运行),并且如果明智的做法是打开和关闭与sql
server的连接,则每秒需要将数据存储到数据库数十次。每个while循环或只是使其保持打开状态并继续将数据写入数据库。首先这可能吗?其次,如果连接保持打开状态,那么第三方应用程序或计算机可以同时访问数据库并在程序存储数据时读取数据吗?


问题答案:

一个数据库支持多个并发连接,因此,在这种情况下,使数据库连接保持打开状态是非常可行的-
只有在长时间运行的查询导致行/表锁定的情况下,您才可以锁定其他数据库。完成后,只需关闭连接即可。

还应考虑到尽管大多数数据库(即SQL Server)在内部使用连接池,所以即使您关闭了数据库连接,它也只是返回到池中,而不是在物理上关闭-池管理着物理数据库连接-
这样会更好性能,因此快速减少了打开/关闭连接的影响。

从MSDN:

连接池减少了必须打开新连接的次数。池管理者维护物理连接的所有权。它通过为每个给定的连接配置保留一组活动的连接来管理连接。每当用户在连接上调用“打开”时,池管理器就会在池中寻找可用的连接。如果池化连接可用,它将把它返回给调用者,而不是打开一个新的连接。当应用程序在连接上调用“关闭”时,池化程序将其返回到活动连接的池化集中,而不是将其关闭。一旦将连接返回到池中,就可以在下一个Open调用中重用该连接。



 类似资料:
  • 问题内容: 我是网络编程的新手。我有兴趣通过Java服务器和C客户端之间的套接字建立网络连接并保持连接无限打开的可能吗?我想保持连接打开状态以在客户端之间交换XML数据。 问题答案: 从理论上讲,可以无限期地打开服务器套接字;但是,使用客户端套接字是不可能的。主要原因是因为客户端套接字取决于处理数据的服务器端套接字,并且服务器套接字可能会关闭连接。 尽管可以无限期地保持连接打开,但实际情况通常会确

  • 在Python中,我将“WebSockets”库用于websocket客户端。 问题是一旦收到响应,客户端websocket连接就会断开。我希望连接保持打开,以便以后可以发送和接收消息。 为了保持websocket打开并能够在以后发送和接收消息,我需要做哪些更改?

  • 我遇到了这个问题:对于Vaadin7,我已经配置了我的持久性。xml,下面是代码 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd“version=“2.0” 当我创建一个新的JPA容器并将其绑定到一个表时,我会在MSSQL活动监视器上看到我的新连接,但如果会话超时或注销,我仍然会在SQL上看到连接。 如果我在应用程序中重新登录,

  • 在打开和关闭其他ejb连接时保持和ejb连接打开是常见的还是可以接受的,还是应该在客户端完成连接并为后续任务打开新连接后立即关闭连接? 我目前正在开发一个使用EJB(JBoss AS7.1.1.final)的Swing应用程序。该应用程序打开一个ejb连接(即创建一个SynalContext实例),然后在应用程序保持运行的情况下将该SynalContext用于常见任务。有许多长时间运行的操作,其中

  • 问题内容: 使连接保持打开状态,直到发生事件。 python django http rest 问题答案: 显然,最常见的方法不是直接在django中进行,而是借助附加的守护程序(可能是因为,例如Apache在许多长寿命连接方面做得不好)。如今,nodejs + socketio对此非常流行(它甚至可以使用WebSockets)-您只需要找到一种在两种方法之间传递数据的好方法。如果它是单向的(例如

  • 问题内容: 在许多使用MongoDB的入门示例中,您将看到类似以下的代码: 如果MongoDB与任何其他数据库系统一样,并且操作通常在时间上很昂贵。 所以,我的问题是这样的:只需执行一次,将返回值分配给某个全局模块即可,模块中具有各种功能就可以进行各种与数据库相关的工作(将文档插入集合,更新文档等)。 ),然后由应用程序的其他部分调用它们(从而重新使用该值),然后,在应用程序完成后,才执行。 换句