我在视图的select查询中调用函数. View正在从表中读取记录,其中包含大约100万条记录.
当我在函数中写入RESULT_CACHE关键字时,我会在几秒钟内得到输出.我怀疑当在视图中使用的任何列的值被更改时,函数会考虑新的值吗?
解决方法
据我所知,RESULT_CACHE将为您提供来自oracle特殊内存结果缓存的数据.
如果你想获得更新的结果你可以使用,
RESULT_CACHE RELIES_ON(表名).
但是,如果您的数据库版本是11.2或更高版本,那么RELIES ON子句是不必要的,因为它会自动跟踪依赖关系并在必要时使缓存的结果无效.
您可以参考here或here的详细信息