【发布时间】:2019-07-28 00:44:15
【问题描述】:
我想知道将NOCOPY 作为函数参数传递如何提高返回SYS_REFCURSOR 的函数的性能。
阅读Oracle文档后,我阅读了以下内容:
如果您在 OUT 参数中传回大量数据,例如集合、大 VARCHAR2 值或 LOB,此技术可以显着提高速度。
既然SYS_REFCURSORS 是指向查询结果集的指针,而SELECT 是SQL 中最快的操作,那么在函数中传递<SYS_REFCURSOR> OUT NOCOPY SYS_REFCURSOR 这样的东西有什么好处吗?
我找到了this thread,但出现了两种意见:
1 - 我们可以通过引用而不是通过值来提高性能调用,如下所示:
Procedure (vRefCur OUT NOCOPY SYS_REFCURSOR).
2 - SYS_REFCURSOR 已经是一个指针 (link),为了提高性能,应该优化 SQL 语句。
你怎么看?
提前致谢!
【问题讨论】:
标签: database oracle performance plsql