PLSQL - 批量收集的最大限制?

Posted

技术标签:

【中文标题】PLSQL - 批量收集的最大限制?【英文标题】:PLSQL - Maximum Limit of Bulk Collect? 【发布时间】:2017-05-09 07:39:58 【问题描述】:

我使用了 purchase_detail 表中的批量收集,该表中有 3000 万条记录。 我想最大限度地在限制子句中使用多少价值。

example : fetch cur_name bulk collect into pur_var limit 5000;/----Maximum多少LIMIT?---/

【问题讨论】:

【参考方案1】:

从语法的角度来看,limit 的值不能超过 2147483647,因为它是 pls_integer

但是,您的数据库服务器在物理上是否能够在 PGA 内存中容纳 20 亿行将取决于可用资源。这不太可能是个好主意。

从性能的角度来看,最佳值将取决于记录的大小和并发执行代码的可能用户数量,并且在 100 年代中期之后可能不会有太大改进。

【讨论】:

我可以设置 row_limit NUMBER := 10000;因为在我的显式游标中,使用数组获取 PROCEDURE 需要超过 13 小时才能完成提前谢谢 是的,尽管可能需要一些尝试和错误来找到最佳设置。

以上是关于PLSQL - 批量收集的最大限制?的主要内容,如果未能解决你的问题,请参考以下文章

立即执行中的批量收集限制

立即执行批量收集限制

为啥批量收集到子句限制了 pl/sql 中嵌套表的大小

使用 LOOP 将 Oracle 批量收集到集合中

在没有并行提示和批量收集的情况下删除数百万条记录

plsql-Oracle 集合