最近,我已经阅读了有关Oracle Database 12中的UDF Pragma优化方法的信息。
我对它的工作原理非常感兴趣。我只在Oracle documentation中找到了简短的说明。
据我了解,PL / SQL中的每个Pragma都是某种类似于C++ Pragma Directives的编译器指令(我在这里可能是错误的)。
也许有人可以向我详细解释(或提供链接:))UDF Pragma的内部机制如何工作?
答案 0 :(得分:1)
内部没有提供给我们,但实际上,编译指示是向编译器发出的指令,该指令着重于降低PLSQL的成本=> SQL上下文切换开销。如果我不得不假设,我会说它利用了不同的12c功能,该功能允许PLSQL直接在通用表表达式中,例如
WITH
myfunction(x int) return int as
begin
...
return ...
end;
select myfunction(col) from my_table
上面编码的PLSQL函数仅在SQL执行期间存在,并且执行时的性能比独立函数有所提高。因此,我怀疑UDF编译指示是否允许通过与上述内联示例相同的代码路径来调用独立功能。
(但我的假设全都是这样)