查询仅返回4-5行。执行时间不到1秒。我有trid增加cfquery和cfsetting的超时但不起作用。大多数时候代码运行成功,但我在每20-30个请求后出现此错误。我正在使用sql server数据库。我知道当你重新启动cf服务器或db服务器超时问题有时会发生,但是这个错误是在没有重新启动任何服务(cf或sql server)的情况下发生的。我认为cf服务器应该有一些设置更改请建议。
请求已超过允许的时间限制标记:CFQUERY 错误发生在第180行。
<CFQUERY NAME="Sections" DATASOURCE="abcd">
SELECT * FROM News_Sections where Section = 'Home' ORDER BY Page_order
</CFQUERY>
答案 0 :(得分:0)
这里可能存在的问题是数据库不是 ColdFusion。我有几个提示给你。首先,使用MSSQL Activity Monitor签出块(作为等待类型)。如果你看到一个块或一个&#34;头部拦截器&#34;单击该项目,它将显示查询(有时:)。
一旦找到它,修复问题将涉及索引或更改查询(复杂连接或子查询通常会产生意外后果)。
你可能有运气使用&#34; WITH(nolock)&#34;在上面的查询中允许脏读(如果你只是获取类别,可能没问题)。您还可以考虑使用cachedwithin缓存上述查询或将其放在应用程序范围中。如果它只是广泛的&#34;家庭&#34;对我来说似乎合理的类别(虽然显然我不了解你的架构。
我的最后一点建议是仔细检查发生错误的页面。有时候行号有点偏差。如果您有一组查询,可能不是您认为错误的查询,而是上面的查询。它并不常见但可能会发生。
答案 1 :(得分:0)
正如Bracuk先生所指出的,这可能不是您的查询的问题。此错误与CFAdmin for Request超时中的设置有关。正在加载的页面经历了超时并抛出了错误。发生超时时,它恰好正在处理您的查询。
因此,虽然查询是一个开始查找的好地方,但请确保在搜索超时原因时检查整个脚本。