【问题标题】:SQL Server taking a long time to return data to ColdFusion when using Flex使用 Flex 时 SQL Server 需要很长时间才能将数据返回到 ColdFusion
【发布时间】:2009-07-14 19:12:59
【问题描述】:

我正在开发一个 Flex 应用程序,该应用程序通过 Flash Remoting 连接到带有 SQL Server 2005 数据库的 ColdFusion 8。大多数时候,一切都运行良好。但是,有时,SQL Server 将存储过程调用中的数据返回给 ColdFusion 需要特别长的时间;从 CF 向 Flex 返回数据非常快。发生这种情况时,我可以从 SQL Server 上的 Management Studio 或 CF 服务器上的 ColdFusion 页面运行完全相同的调用并立即获得结果。最近发生的问题大约需要 90 秒才能将数据返回到 CF。在 90 秒的窗口中,我能够在 Management Studio 中多次运行存储过程。

我尝试过使用不同的驱动程序,但这似乎并不重要。我还一直关注服务器性能,并且在发生这种情况时没有发现任何异常情况。有没有人见过这种行为?关于我应该寻找什么的任何想法。

【问题讨论】:

  • SQL Server 位于何处?与您的 CF 应用程序服务器在同一台机器上?远离它?
  • 听起来像是并发/锁定问题...

标签: sql apache-flex sql-server-2005 coldfusion


【解决方案1】:

虽然它运行缓慢,但您可以对您的 SQL Server 运行“sp_who2”吗?如果这是一个阻塞问题,您会在“BlkBy”列中看到具有值的行,这意味着它们正在等待另一个进程完成才能继续。

如果是这种情况,则需要进行其他故障排除,以便找出导致阻塞的原因。 This article 提供锁定和故障排除块的概述。如果这是您的问题,请更新您的问题并添加更多详细信息,我们可以帮助您解决问题!

【讨论】:

    【解决方案2】:

    您确定在 sp 中运行的查询每次都是相同的吗?例如,当它变慢时,查询是否有可能具有不同的排序顺序?可能 10 次中有 9 次,查询快速返回,而第 10 次很慢 b/c 您获取的数据正在按未编入索引的某些列进行排序?

    在这些情况下,我会尝试设置 SQL Trace(使用 sql profiler)并让它运行一段时间。一旦出现这种情况,就让它跑过去,然后分析痕迹。毫无疑问地确认正在运行的查询与同一 sp 的其他执行相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2020-09-13
      相关资源
      最近更新 更多