我正在尝试缓存存储过程。我下载了 ColdFusion 10,它在 Railo 4 服务器上运行。我在我的 Railo Admin 中设置了数据库连接(默认缓存),根据 Adobe 文档,我只需要使用该cachedWithin
属性,它就应该被缓存。但是,它没有,我肯定知道这一点,因为我的页面需要超过 10 秒。装载!
我尝试使用cfcache
存储过程周围的标签动态缓存它,但这会一直缓存我不想缓存的整个页面。CachePut
也CacheGet
可以工作,但我的代码很复杂,无法有效地适应它们。
超级迷茫。
以下是相关代码:
<cfstoredproc datasource="#XXX#" procedure="XXX" cachedWithin="#CreateTimeSpan(0,3,0,0)#">
<cfprocparam type="In" value="#IDate#" cfsqltype="CF_SQL_TIMESTAMP">
<cfprocparam type="In" value="12" cfsqltype="CF_SQL_INTEGER">
<cfprocparam type="In" value="1" cfsqltype="CF_SQL_BIT">
<cfprocresult name="DeptQuery">
</cfstoredproc>
更新:事实证明,存储过程并不是花费所有时间的!我终于把它缓存了!但是我对它是如何做到的感到困惑,因为我在多个页面上缓存了相同存储过程的 1000 个变体(每个页面单独有多个存储过程),而我指定的只是一个 cachedWithin 参数。当它将它们拉到视图时,它如何知道哪个过程是哪个过程?