Java - DB2性能改进

时间:2011-05-23 18:07:35

标签: java performance db2

我们有一个SELECT语句,需要大约。执行3秒。我们在嵌套的While循环中调用这个DB2查询。

例如:

虽然(hashmap1.hasNext()){ 而(hashmap2.hasNext()){ SQL查询 } }

问题是,外部While循环将执行约。 1200次内部While循环将执行200次。这意味着SQL将被称为1200 * 200 = 240,000次。约。 Outer While循环的每次迭代将花费150秒。所以,1200 * 150秒= 50小时。

在我们开始下一个过程之前,我们只能负担大约12-15小时的时间。

有没有办法快速完成这个过程?任何可以帮助我们更快地从DB2获取这些记录的新技术。

任何帮助都将受到高度赞赏。

注意:我们已经研究了减少no.of迭代的所有可能方法。

1 个答案:

答案 0 :(得分:4)

听起来像你正试图将中间层用于数据库本身更适合的东西。这是一个经典的“N + 1”查询问题。

我重写了这个逻辑,完全在数据库上执行,作为正确索引的JOIN。这不仅可以来回减少所有网络,而且还会带来数据库优化器,并节省将所有数据带到中间层进行处理的费用。