oracle - RESULT_CACHE为空的RELIES_ON

标签 oracle oracle11g oracle11gr2

我在带有RESULT_CACHE的函数中有一个查询。

因此,当更改表时-我的缓存无效,功能再次执行。

我想要的是实现仅依赖依赖于输入参数的函数,并且不依赖于任何隐式依赖项(例如表等)。

是否有可能(没有动态sql)?

最佳答案

可以将仅依赖于其参数的函数声明为DETERMINISTIC。在某些情况下,此功能的结果将被缓存。此thread on the OTN forums显示如何将确定性函数结果缓存在SQL语句中。

从10gR2开始,该函数结果既不会在SQL语句之间进行缓存,也不会在PL/SQL中进行缓存。不过,如果您在SELECT中调用某个函数而该函数可能会被调用很多时间,则此缓存功能还是很有用的。

我现在没有可用的11gR2实例,因此我无法测试RESULT_CACHE功能,但是您是否考虑过依赖固定的伪表(例如,从未更新过的表)来释放函数?

关于oracle - RESULT_CACHE为空的RELIES_ON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826778/

相关文章:

oracle - 如何消除子类型依赖?

java - 如何创建 oracle.sql.ARRAY 对象?

oracle - Oracle JDBC 驱动程序版本 11.2.0.2.0 中的夏令时处理是否中断?

python - 如何修复Python中的 'TypeError: expecting string or bytes object'错误

.net - 从 Dapper ORM 调用 Oracle 存储过程时,无法将类型 'System.Int32[]' 的对象转换为类型“System.IConvertible”

oracle - ORA-00904 嵌套选择的标识符无效

sql - HSQLDB/Oracle - IN 子句中超过 1000 项

mysql - 为什么一张数据库表可以只有一个主键?

sql - 从另一个sql文件执行sql文件

linux - Oracle Sort Order - 什么可能导致它改变