【发布时间】:2011-02-11 11:57:02
【问题描述】:
我有 5 行代码作为被调用 100000 次的函数,有没有办法使函数内联,这样我就不会在 PL/SQL 中遇到调用开销。 Oracle 9i 是我正在使用的版本。
更新: In lining of code 没有太大改进,但我获得了 2 秒。现在我正在寻找 pl/sql 中浮点数据类型的有效版本。 BINARY FLOAT 不起作用,NUMBER(10,5) 是已经被使用的。
【问题讨论】:
-
不幸的是,
PRAGMA INLINE仅在 Oracle 11g 中引入。 download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/… -
您是否确定在调用此函数时存在显着的有害开销?
-
@Jeffrey Kemp 这就是我指定 oracle 9i 的原因,你知道如果我手动内联它是否有什么好处吗,知道函数调用开销会有多少 b/w 100000 - 1000000?.
-
@Charles 我怀疑因为该函数被调用了很多次并且性能损失在该函数中,无论如何我会尽快挖掘并让你知道,因为周末已经在这里开始了:)。
-
@yesraaj,这就是为什么我把它作为评论而不是“答案”:)
标签: function plsql inline oracle9i