在Java中处理DB中的大列表

时间:2012-06-19 04:16:35

标签: java sql-server collections

我有一个包含200多个项目的大清单,这些项目将从数据库中提取并每天在一个简单的基于控制台的Java App中处理。

最好的方法是什么?我应该在小集中获取列表并处理它,还是应该将完整列表提取到数组中并进行处理。保持阵列意味着巨大的内存需求。

注意:只需处理一列。

处理意味着,我必须将该字符串作为SOAP请求传递到其他位置。 20000项是长度为15的字符串。

3 个答案:

答案 0 :(得分:1)

这取决于。 20000并不是一个很大的数字。如果您只处理20000个短字符串或数字,则内存要求不是那么大。但如果它的20000张图像有点大。

总是需要权衡。多个数据块意味着多次访问数据库。但一次旅行意味着更多的记忆。哪个更重要?您的数据也可以分块吗?或者您是否需要示例记录1才能处理记录1000。

这些都是需要考虑的事情。希望他们能帮助您找到最适合您的设计。

答案 1 :(得分:0)

纠正我如果我错了,一点一点地取出它,并为它提供回滚操作。

答案 2 :(得分:0)

如果作业可以在数据库级别完成,我会使用SQL sripts,如果这是不可能的,我可以建议你加载有两列的小数据,如ID列和需要的列被处理。

这将使您在此过程中获得更好的性能,如果您遇到任何崩溃,您将不会丢失所有已处理的数据,但在崩溃的情况下,您需要知道哪些数据集已处理,哪些不能处理,这可以使用第3列或每轮保存最后处理的ID。