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

保持Sql Connection打开以便迭代许多请求?还是关闭每个步骤?

曹茂材
2023-03-14
问题内容

嘿-这是所有调用SQL Server的操作或任何需要打开连接的操作的常规操作。

假设我有20到1000个选择调用,可以对正在循环的数据中的每个项目进行调用。对于每个步骤,我将从sql中选择,将数据本地存储在结构中,然后继续。这不是一个非常昂贵的电话,因此我应该在整个循环中保持连接打开状态吗?还是应该打开和关闭每一步?

打开连接在运行时有多昂贵?我认为最好保持连接打开,但是希望对此做出正确的响应。

谢谢。


问题答案:

运行时打开连接的成本有多高

这仅考虑CPU速度,不考虑带宽。

保持开放的连接可节省CPU成本,但会阻止其他请求使用该连接。因此,这是一个折衷。很难说出“正确的响应”是什么,而又不了解更多,但是在这两种情况下,似乎都在修补公差而不是钉扎名义值。

就是说,我通常首先在一个SQL工作单元的持续时间内保持连接打开,然后关闭它。

尽管似乎有些粗略的一句话是这条线

20至1000选择要循环播放的数据中的每个项目的调用。

尝试做更多基于集合的操作。



 类似资料:
  • 问题内容: 我以为我很聪明。但是鉴于最近的发现,我不确定。在页面生命周期中,可能有许多数据库交互。有些背靠背,有些则散布开来。因此,我发明了一个对象,该对象在HttpContext.Items字典中使SQL连接的实例保持活动状态。然后,每个数据库请求都使用此连接,并且当http请求结束时,我会正确处理该连接。我们正在等待几百毫秒的时间,连接将打开,并且通过大量的HTTP高速缓存,可用连接的用尽也不

  • Websocket是好的,但是它能够处理1,000,000个并发连接吗? 要保持1,000,000个Websocket打开需要多少系统资源?

  • 我们有一个java应用程序,我们使用多个语句变量。为什么需要多个语句的问题是,有时在为循环内的一个结果运行循环时,我们需要执行其他一些查询操作。大多数地方,单一的stmt被使用了很多次,最后我们关闭。现在我们要确认的是,我们没有关闭resultset变量,我们注意到内存的使用情况会波动。那么,在得到结果后立即关闭resultset的最佳机制是什么,还是在结束时关闭stmt之前关闭resultset

  • 我的理解是,在Tomcat中,每个请求将占用一个Java/(因此也是OS)线程。 想象一下,我有一个应用程序,有很多长时间运行的请求(例如一个有多个玩家的扑克游戏),涉及游戏内聊天和AJAX长轮询等。 有没有办法更改我的webapp的tomcat配置/体系结构,这样我就不会对每个请求使用线程,而是“截获”请求和响应,这样它们就可以作为队列的一部分进行处理?

  • 问题内容: 我想检查使用PHP在特定实例上网站是否正常运行。我知道curl会获取文件的内容,但我不想阅读网站的内容。我只想查看网站的状态。有什么方法可以检查网站的状态?我们可以使用ping检查状态吗?对于我来说,从服务器获取状态信号(例如404、403等)就足够了。一小段代码可能对我有很大帮助。 问题答案: 这样的事情应该工作

  • 我刚刚开始使用模块。我试图从超市抓取产品,有一个网站似乎总是以。我已经对堆栈溢出进行了一些研究,似乎没有人有同样的问题。我的代码非常简单: 我也试图按照这个答案的建议修改用户代理,但是结果还是一样 有人能解释一下urllib模块内部的哪些默认设置可能导致这个问题吗?还是因为网站屏蔽了僵尸程序?网站的其他产品页面也不行。