我的查询是否被缓存?

时间:2013-02-20 23:35:15

标签: railo cfml

我习惯使用Adobe ColdFusion并使用cachedafter缓存查询并使用“简单”日期:

<cfparam name="application.icons_last_changed" default="#now()#">
<cfquery name="get_icons" cachedafter="02/02/1978" datasource="#application.datasources.main#">
SELECT icon_id, icon_name
FROM REF_Icon
WHERE #application.icons_last_changed#=#application.icons_last_changed#
ORDER BY sort_order
</cfquery>

我将我的项目从ColdFusion / MSSQL转换为Railo / PostgreSQL。今天,Railo诊断中的一些东西引起了我的注意。

  • 我习惯在/path/qry_get_ref_icon.cfm看到“get_ref_icon(Datasource = Workstream, Time = cached ,Records = 39)”
  • 但在Railo中,我在/pathqry_get_ref_icon.cfm中看到“get_ref_icon(数据源=工作流,时间= 0.974毫秒,记录= 39)”。

认为也许Railo不支持cachedafter的简单数据值(“02/02/1978”),我尝试用createodbcdatetime('1978-02-02 16:37:00')设置日期,但似乎没有有所作为。

当然,0.974毫秒是一个很小的时间,可能是缓存查询,而且Railo并不像ColdFusion那样明确。

我的查询是否被缓存,或者我是以错误的方式进行的?

1 个答案:

答案 0 :(得分:3)

不,查询未缓存。

我遵循了Busches的建议并审核了<cfdump var="#get_icons#" />的结果:

Query
Template:/super/double/secret/path/qry_get_ref_icon.cfm 
Execution Time (ms):0.624 
Recordcount:39 
Cached:No                                     <--UH OH, SPAGHETTI-O's
Lazy:No 
SQL: 
SELECT icon_id, icon_name 
FROM REF_Icon 
WHERE active_ind=1 /*{ts '1978-02-02 16:37:00'}*/ 
AND {ts '2013-02-20 22:25:14'}={ts '2013-02-20 22:25:14'} 
ORDER BY sort_order 

因为我是一个不信任的人,我也遵循了亚当·卡梅隆的建议并改变了一些数据然后重新查询。查询结果已更新,因此没有缓存。


我已经向优秀的铁路人员报告了这个问题:https://issues.jboss.org/browse/RAILO-2318