我习惯使用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诊断中的一些东西引起了我的注意。
认为也许Railo不支持cachedafter
的简单数据值(“02/02/1978”),我尝试用createodbcdatetime('1978-02-02 16:37:00')
设置日期,但似乎没有有所作为。
当然,0.974毫秒是一个很小的时间,可能是缓存查询,而且Railo并不像ColdFusion那样明确。
我的查询是否被缓存,或者我是以错误的方式进行的?
答案 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