使用ADODB连接运行查询随机需要很长时间才能执行

时间:2011-09-25 20:15:23

标签: sql-server asp-classic adodb

我遇到了一个似乎以某种方式连接到Web服务器配置的问题,导致查询随机需要很长时间才能执行。使用旧的普通经典ASP创建应用程序,并使用ADODB连接。

情景如下:

  • 在处理每个HTTP请求的过程中,在脚本中打开了一个连接
  • 此连接用于对SQL Server执行查询,该查询驻留在单独的框中。 conn.Execute被使用。之后没有关闭连接
  • 在一个ASP页面中通常会有几个到几十个conn.Execute

所有这些一直运作良好,直到最近,当一些conn.Execute开始花费更长的时间来执行时,完全是随机的。

  • 差别是例如15毫秒正常执行时间与2000毫秒长执行时间
  • 在SQL Server端,Profiler没有显示更长的查询执行时间,因此必须有阻止conn.Execute请求的东西

如果在每次执行conn.Execute之后正确关闭连接,则问题就会消失。但是,正如我之前所说,直到最近,所有人都一直在完美地工作。这个Web应用程序是一个相当大的应用程序,并重写它关闭并正确重新打开连接将需要一些时间。我需要一个短期解决方案。

我的猜测是它可能与连接池大小有关,但这不是ADO.NET,因此我不确定是否应该考虑连接池问题。在SQL Server端,对服务器的并发连接数没有限制。

我需要一些提示。头脑风暴可能的想法。

1 个答案:

答案 0 :(得分:0)

可能与通过DNS解析连接字符串中的主机名的延迟有关 - 您是否尝试在连接字符串而不是主机名中放置IP地址?