Java 如何处理海量数据?
使用的数据库:Oracle 11g 操作系统:红帽linux 使用的技术:Java和Ibatis 说明:Java 如何处理海量数据?,java,perl,shell,oracle11g,ibatis,Java,Perl,Shell,Oracle11g,Ibatis,使用的数据库:Oracle 11g 操作系统:红帽linux 使用的技术:Java和Ibatis 说明: 有两张表(表A和表B) TableA有超过100000条记录(12-15列) TableB有超过1000000条记录(40-45列) 需要用表B中的第1列检查表A中的第1列、第2列、第3列和第4列值 如果它在tableB中可用,那么我需要更新tableA中的其他列 如何做到这一点 问题: 目前,我们已经使用java/Ibatis完成了这项工作。我们经常会遇到java堆空间问题,因为它包含
- 有两张表(表A和表B)
- TableA有超过100000条记录(12-15列)
- TableB有超过1000000条记录(40-45列)
- 需要用表B中的第1列检查表A中的第1列、第2列、第3列和第4列值
- 如果它在tableB中可用,那么我需要更新tableA中的其他列
- 来自表A-参考号、用户名、年龄和状态,其中使用以下查询获取 从状态为“失败”的表A中选择referenceno、name、age和status。 它几乎返回20lac行,并存储在arraylist中
- 从arraylist中,将每一行与下表中的referenceno、name、age进行比较 从表B中选择count(*),其中refereveno=tableA.referenceno,name=tableA.name,age=tableA.age,deleteflag='N'。(如上所述,表B几乎有40条LAC记录)
- 如果上面的查询返回1,那么它将更新tableA,状态为PASSED 如果返回(1),它将更新tableA,状态为FAILED,备注为“找到多个匹配项”
希望使用shell脚本/perl可以完成这项工作?请建议最好的方法做这件事 我建议编写PL/SQL存储过程,这应该是最快的方法—Oracle数据库不需要向java应用程序发送数据
您可以通过oracle作业机制安排此类PL/SQL过程。您的描述中的哪一部分是您一直坚持的?现在更新了问题,并提供了更多信息,希望您现在能够了解上下文!!!!!!!!