我有一个带有 1 个参数(日期)的函数,它封装了 1 个查询,例如
SELECT COUNT(*)
FROM tbl
WHERE some_date_field BETWEEN param_date - INTERVAL '0 1:00:00' DAY TO SECOND
AND param_date
我想要做的是使用 ttl = 1 分钟将此查询的结果缓存在某处。缓存的结果应该在所有 session 之间共享,而不仅仅是当前 session 。
有什么建议吗?
PS:是的,我知道oracle函数结果缓存,但它不符合要求。
PPS:是的,我们可以创建具有一些值的第二个人工参数,例如
date in format of yyyymmddhh24mi
所以它每分钟都在变化,我们能够使用函数结果缓存,但我希望这是一个允许我隐藏缓存依赖项的解决方案。
最佳答案
我会使用全局应用程序上下文和刷新间隔为 1 分钟的作业来设置上下文。
PS:INTERVAL '1' HOUR 比 INTERVAL '0 1:00:00' DAY TO SECOND 更短且更有意义
关于oracle - pl/sql中实现缓存层的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5496125/