在 SQLSELECT
语句中,我想执行一个对该SELECT
语句范围具有确定性的函数(或者事务也可以):
select t.x, t.y, my_function(t.x) from t
的许多值t.x
是相同的,因此 Oracle 可以省略一次又一次地调用相同的函数,以加快处理速度。但是,如果我将函数标记为DETERMINISTIC
,则结果可能会在此查询的多次执行之间缓存。我不能使用的原因DETERMINISTIC
是因为my_function
使用了一个不时更改的配置参数。
我可以使用其他关键字吗?是否有任何我应该注意的问题(内存问题、并发性等)?或者可能有任何其他技巧,例如每个t.x
值只调用一次函数的分析函数(不会对性能产生重大影响)?