【发布时间】:2018-09-16 13:25:38
【问题描述】:
我想从 oracle 读取数百万条记录并通过 Java 传输到另一个表。由于某种原因,我们正在使用 Java 进程,我们正在这样做。
我想问一下从表中选择记录的最佳方法,例如一次 1000 条记录。rownum 是好的还是 12c 中的 Fetch/Offset?
例如,如果表有 10000 条记录,我可以使用以下查询。
select *
from table
first 500 rows only -- first time
select *
from table
offset 500 next 500 rows only
... 第二次(这次是 oracle 再次获取 1000 条记录并将 500 行发送到结果集 ..)
select *
from table
offset 1000 next 500 rows only
....这一次 oracle 是否再次获取 1500 条记录并发送 500 行到 resulset...
...等等
所以我不确定 Rownum 是一次选择 500 条记录还是偏移/获取方法的最佳方法......需要建议......
【问题讨论】:
-
两张表在同一个数据库还是在不同的数据库?
-
为什么要使用 Java 来移动表格?我建议改为使用数据泵。
-
“由于某种原因我们正在使用 Java 进程” 是您想要以极其低效的方式执行此操作的原因吗?
-
我们现在不能使用任何工具,并且出于安全原因,我们正在使用自定义框架来传输数据..还有很多表格中的设计问题并重新创建表格进行一些按摩然后进行传输。 .so 使用 java