冷聚变 |查询超时错误问题

ColdFusion | Query timeout error questions

这是我的代码

<cfquery name="employeeData" datasource="xyz" cachedwithin="#CreateTimeSpan(0,0,60,0)#">
    SELECT employee, salary
    FROM employee
</cfquery>

<cfquery name="wellPaidEmployee" dbtype="query">
    SELECT employee, salary
    FROM employeeData WHERE salary > <cfqueryparam cfsqltype="cf_sql_integer" value="10000">
</cfquery>

条件:
第一个查询 EmployeeData 由于某些问题超时并抛出错误 "query timed out"

问题:

  1. 在下一次调用时,查询 EmployeeData 运行 还是会在缓存中出现查询超时错误,因为我们使用 cachewithin 对其进行了缓存?
  2. wellPaidEmployee 在第一个 运行 和接下来 运行 会发生什么?

只有成功的数据库请求才会被缓存,因此 EmployeeData 查询将在下一次传递时 运行。

如果 employeeData 没有错误,wellPaidEmployee 查询将 运行。

评论太长了。

查询超时和缓存过期是两回事。

<cfquery name="employeeData" datasource="xyz" cachedwithin="#CreateTimeSpan(0,0,60,0)#">
SELECT employee, salary
FROM employee
</cfquery>

第一次命中时会运行。它还会将其数据保存 60 分钟。如果在 60 分钟内再次访问该数据,缓存超时将重置为零。理论上,如果每 60 分钟访问一次此数据,它永远不会访问数据库。

至于

<cfquery name="wellPaidEmployee" dbtype="query">
SELECT employee, salary
FROM employeeData WHERE salary > <cfqueryparam cfsqltype="cf_sql_integer" value="10000">
</cfquery>

它不知道,也不关心底层数据是否来自缓存。它只会 return 结果。

如果您遇到 "query timed out" 错误。那是一个完全不同的问题。 ColdFusion 连接数据库的方式有问题,或者数据库本身有问题。