0
我的SQL查詢只需要1分鐘即可執行,但獲取可達到100萬的總行需要將近11分鐘。提取行比運行查詢需要更長的時間
以下是僞代碼:
stmt.setFetchSize(5000);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
//Do some task
}
我試圖改變提取大小從100到80000,但沒有什麼幫助,但它仍然需要超過10分鐘。 如果我刪除while循環並簡單地執行查詢,那麼整個過程只需要幾分鐘,這意味着查詢正在快速執行。
有關如何提高獲取行的時間的任何建議?
什麼是「//做一些任務」?如果數據庫管理系統本身可以高效地完成這些工作,那麼你就會浪費時間在本地提供數據。 – paxdiablo
不可以在數據被提取後在DBMS中完成。我們需要對java層的數據進行大量的分析。 – Lokesh
嘗試conn.setAutoCommitMode(false); – JRR