【发布时间】:2018-02-27 19:25:24
【问题描述】:
我在 oracle 中有一个带有 12 个参数的过程,其中 4 个是 sys ref 游标。
我将使用另外 8 个 out 参数从我的过程中替换一个游标。
如果使用 out 参数,是否会提高性能而不是 out ref cursor。
【问题讨论】:
标签: oracle stored-procedures sys-refcursor out-parameters
我在 oracle 中有一个带有 12 个参数的过程,其中 4 个是 sys ref 游标。
我将使用另外 8 个 out 参数从我的过程中替换一个游标。
如果使用 out 参数,是否会提高性能而不是 out ref cursor。
【问题讨论】:
标签: oracle stored-procedures sys-refcursor out-parameters
游标可以被认为是指向数据库中包含结果集的内存区域的指针——它不直接包含结果;因此,当您发送游标时,您只是发送指针,然后您使用的任何用户界面都必须对数据库进行额外的往返,以使用该游标(指针)打开结果集,获取行,然后,当完成,关闭光标。
当您使用带有单个值的 out 参数时,这些值可以在过程终止时全部返回,并且不需要与数据库进行额外的通信。
如果使用 out 参数而不是 out ref cursor,是否会有任何性能提升。
所以,是的,如果您返回多个输出参数而不是引用单行结果集的游标,则可能会提高性能。但是,与所有性能增强一样,您应该对更改进行概要分析,以便查看实际效果(可能可以忽略不计)。
【讨论】: