2013-04-11 38 views
0

我有一個返回92000行的SQL查詢,當我使用while和ResultSet.next()時,它花費了很多時間。我發現問題的根源是迭代ResultSet的條件。下一個()。你有一個想法,我該如何改善性能並減少花費時間。Optimize ResultSet迭代

+1

你使用了哪個數據庫? –

回答

0

ResultSet.next()實際上可以與undefined下的網絡一起使用,並且可以與服務器進行通信,以便在迭代了以前的行之後提供更多的數據。

所以兩個小技巧:

  1. 增加prefech大小在結果查詢
  2. 在數據庫中創建索引。這將提高數據庫的性能,這將使

看一看也設於您的問題處理這兩個環節,並獲取大小:

增加獲取大小意味着從數據庫中獲取數據的次數減少。結果集就像一個緩衝區,一旦你迭代了它們,就會獲取X個行並重新獲取。

最後,您可以嘗試使用線程,同時將您的一個查詢分解爲4-5個並行執行在單獨線程中的查詢。