Oracle/PLSQL性能

jDe*_*per 1 oracle performance plsql stored-procedures

将存储过程分解为多个过程而不是执行大过程时,性能是否有任何差异?
哪一个更快?

例如:

mainSP
  callSP1
  callSP2
  callSP3
end;
Run Code Online (Sandbox Code Playgroud)

而不是:

SP
  .... 
  ....
  ....  
Run Code Online (Sandbox Code Playgroud)

Gar*_*ers 6

在10g及以上版本中,有一个"优化编译器".

11g中,它将执行"子程序内联.子程序内联用一个被调用子程序的副本替换子程序调用(到同一程序单元中的子程序)"

我认为内联是10g的一部分,但在那里找不到它.


Jef*_*emp 6

任何性能优势都是在非常罕见的情况下,例如,主循环在循环中被多次调用并且每次单独迭代不需要花费很多时间.

大多数情况下,将程序分解为逻辑步骤的可维护性将远远超过可能产生的次要性能增益.

如前所述,基准测试和测试 - 除非您看到显着的好处,否则可维护性 - 未来的开发人员将感谢您!