我正在开发一个在某些系统上进行数据库交互的接口。作为我工作的一部分,我应该查询源数据库,调用一些过程,在引用游标中获取数据并填充目标数据库。
由于数据量可能很大,我在目标数据库上使用多线程来调用该过程。例如,如果应该加载的条目总数为 100 万,那么在目标数据库上,该过程被调用 10 次,每次 100K 记录。
这种安排工作正常,除非源数据库的数据量很大(例如超过 200 万个条目)。我已经设置了大约 20 GB 的堆空间来处理记录,但是我的程序因堆内存错误而失败。
我想知道是否有办法以并行模式从源数据库中查询数据(例如,假设从源存储过程中获取了总共 200 万条记录,我的程序应该首先获取该记录的子集然后继续下一个或类似的东西)。
我提出的解决方案之一是通过数据库端以这种方式发送记录,但我想知道是否有更好的选择。请建议