【发布时间】:2015-12-02 05:21:12
【问题描述】:
目前我面临一个明显的问题,我从 web 服务调用接收数据,同样需要加载到 Oracle 表中。
场景: - 我有一个非常大的表,有 500 列 - 所有列都是强制性的,并且没有选择拆分表。 - 数据集是 50m 条记录,我正在尝试从源系统导出 - 并且它不断增加 - 一次我通过向 web 服务(在源系统)发出请求来接收 50 列数据,因此我需要提交 10 个请求,每个请求 50 列以获得完整记录。 - 同样,在一个特定列集的请求中,我一次只能收到 100000 (1 lac) 条记录。
现在,要将相同的数据导入目标系统的 Oracle DB,我有以下两种选择: 1.先导出50列临时表的数据,然后对所有临时表运行join,创建全部500列的最终表 2. 触发 10 个并行请求,每个请求 50 列,并在我的 java 程序上拼接数据,然后发送包含所有 500 列的插入查询
在这里我想知道,哪种技术效果更好,是使用基于 Oracle 的表连接还是使用主键列在 java 端应用拼接?
由于数据集非常庞大,我只关注性能方面。还有更优化的方法来解决同样的问题吗?
【问题讨论】:
-
如果数据库支持可编程功能(程序?),请使用带有一些临时表的功能。