2013-10-25 102 views
0

裏面我經歷了以下情況查詢優化的Java - 使用查詢嵌套循環

for(int i =1;i<=8028;i++) 
    { 
     for(int j=1;j<=1300;j++) 
     { 
      xyz = executeQuery("Select where abc = i and bcd = j") 

     } 
    } 

在上面的例子中,我想查詢執行8028 * 1300的時間這需要大量的時間和資源來。

有什麼辦法可以對時間和性能進行優化嗎?

請原諒我上面的代碼,它只是一個僞代碼。也讓我知道如果有什麼不清楚。

+4

你大概可以查詢d atabase少了很多(一次? :p)並以某種方式循環結果集。例如:'1-8028範圍內的abc,1-1300範圍內的bcd'。 – keyser

+2

如果你正在使用聲明,那麼我會建議你使用preparedstatement.This將需要更少的時間 – SpringLearner

回答

0

試試這個::

 xyz = executeQuery(" Select abc, bcd from myTable" 
+" where abc between 1 and 8028" 
    +" and bcd between 1 and 1300") 
0

做一些類似於「SELECT * FROM ... ORDER BY abc,bcd WHERE abc in range 1-8028 AND bcd in range 1-1300」,然後遍歷結果。需要在實際的數據庫結構

更多信息以提供更好的答案

0

使用本

Select * from your_Table where (abc between 1 and 8028) and (bcd between 1 and 1300) 
0

試試這個:

select ...... where (abc between 1 and 8028) and (bcd between 1 and 1300)