[J2SE]資料庫新增幾萬筆資料
標題雖然是J2SE
不過卻是JSP/SERVLET的應用 ( ̄□ ̄|||)a
因為如果在jsp顯示上會有timeout等等的問題
所以有些疑問
目前程式流程大概是這樣(程式碼還沒寫 大概寫一下假碼 ,SET不是java.util的Set)
DO
SET SQL= SQL Command;
SET ResultSet = executeQuery(SQL) //從資料庫取資料
WHILE( ResultSet.next() ) //大概兩萬多筆
BEGIN
SET DATA = ResultSet.getData() //從資料庫取得資料
DATA = DoSomeThing( DATA) //處理資料
Statement.Insert(DATA ) //新增到資料庫其他欄位
END
END
以上這樣的程式 我估計 大概要跑個幾分鐘
之前的經驗是用批次的方式結果會好很多
就假碼WHILE結束之後才執行statment.executeBatch()
現在的疑問就是:
要是一次兩萬多筆 這些資料在executeBatch之前
都暫存在記憶體吧
這樣要是資料量很大的時候 不就可能有爆炸的問題?!
我現在的想法是
在ResulteSet的迴圈內計數
當到達特定的mod值(ex:100、1000)
就執行executeBatch()與clearBatch()
不知道這樣的想法對不對?!
還是有更好的作法??
另外timeout的問題
我是想實作官方網站有教的JProgressBar
或者是乾脆寫成Thread
將頁面顯示跟SQL執行批次的程序分開
不知道這樣可行嗎?
(只擔心有Thread-safe的問題 我JAVA很多觀念很粗淺ˋ(′_‵||)ˊ)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.146.161
推
07/02 13:12, , 1F
07/02 13:12, 1F
→
07/02 13:15, , 2F
07/02 13:15, 2F
推
07/02 14:10, , 3F
07/02 14:10, 3F
→
07/02 15:32, , 4F
07/02 15:32, 4F
推
07/04 17:13, , 5F
07/04 17:13, 5F
→
07/05 01:11, , 6F
07/05 01:11, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):