railo - 我的查询是否被缓存?

标签 railo cfml

我习惯了 Adob​​e 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 (Datasource=Workstream, Time=0.974 ms, Records=39)”。

考虑到 Railo 可能不支持 cachedafter 的简单数据值(“02/02/1978”),我尝试使用 createodbcdatetime('1978-02) 设置日期-02 16:37:00'),但这似乎没有什么区别。

当然,0.974 毫秒的时间太短了,也许查询会被缓存,而 Railo 并不像 ColdFusion 那样明确。

我的查询是否被缓存,或者我的处理方式是否错误?

最佳答案

不,查询没有被缓存。

我按照 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 

因为我是一个不信任的人,所以我也遵循了 Adam Cameron 的建议,更改了一些数据,然后重新运行查询。查询结果已更新,因此没有缓存。


我已向 Railo 的优秀人员报告了该问题:https://issues.jboss.org/browse/RAILO-2318

关于railo - 我的查询是否被缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14991960/

相关文章:

coldfusion - ColdFusion 中数组的奇怪行为

windows - Railo Best 是在 Linux 还是 Windows 上实现的?

tomcat - 我可以在 Railo 上托管标准 war 应用程序吗

apache - 什么会导致带有 Railo 4 和 mod_cfml 的 tomcat 404 用于 SES urls like/index.cfm/event/main.home?

javascript - 如何在 ColdFusion 中验证新电子邮件地址是否正确

java - 使用 ColdFusion 的 jSoup select() 出现意外结果

tomcat - SES url 与具有动态子文件夹的 Railo/tomcat

coldfusion - 可以在 Application 变量中存储大对象(例如 java 组件)吗?

sql-server - 结果在使用railo的cfquery中不起作用

coldfusion - 无法从 cfinvoke 语句中找到组件