【问题标题】:The request has exceeded the allowable time limit Tag: CFQUERY请求已超过允许的时间限制 标签:CFQUERY
【发布时间】:2016-04-25 12:36:36
【问题描述】:

查询仅返回 4-5 行。执行时间不到 1 秒。我已经尝试增加 cfquery 和 cfsetting 的超时但不起作用。大多数时间代码运行成功,但我在每 20-30 个请求后收到此错误。我正在使用 sql server 数据库。我知道当您重新启动 cf 服务器或 db 服务器超时问题时,有时会出现此错误,但不会重新启动任何服务(cf 或 sql 服务器)。我认为cf服务器应该有一些设置更改请建议。

请求已超过允许的时间限制标签:CFQUERY 错误发生在第 180 行。

<CFQUERY NAME="Sections" DATASOURCE="abcd">
    SELECT * FROM News_Sections where Section = 'Home' ORDER BY Page_order
</CFQUERY>

【问题讨论】:

  • 超时可能与数据库或应用服务器上的其他活动有关。

标签: coldfusion


【解决方案1】:

这里可能的问题是数据库不是 ColdFusion。我有几个建议给你。首先,使用 MSSQL 活动监视器检出块(作为等待类型)。如果您看到一个块或“head blocker”,请单击该项目,它会向您显示查询(有时:)。

一旦找到它,解决问题将涉及索引或更改查询(复杂的连接或子查询通常会产生意想不到的后果)。

您可能会在上述查询中使用“WITH(nolock)”来允许脏读(如果您只是获取类别,可能没问题)。您还可以考虑使用 cachedwithin 缓存上述查询或将其放置在应用程序范围内。如果它只是对我来说合理的广泛的“家庭”类别(尽管显然我不知道你的架构。

我的最后一点建议是仔细检查发生错误的页面。有时行号有点偏离。如果您有一组查询,则可能不是您认为出错的查询,而是它上面的查询。这并不常见,但可能会发生。

【讨论】:

    【解决方案2】:

    正如 Bracuk 先生所指出的,这可能不是您的查询的问题。此错误与 CFAdmin 中的请求超时设置有关。正在加载的页面经历了超时并引发了错误。发生超时时,它恰好正在处理您的查询。

    因此,虽然查询是开始查找的好地方,但请确保在搜索超时原因时检查整个脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2017-01-04
      • 2018-07-27
      • 1970-01-01
      • 2012-12-22
      相关资源
      最近更新 更多