JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » JDBC/SQL討論區 » SQL 語法  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 SQL語法問題(急)
markk1933





發文: 4
積分: 0
於 2018-03-13 08:41 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Post is deleted

markk1933 edited on 2018-05-10 02:57
reply to postreply to post
作者 Re:SQL語法問題(急) [Re:markk1933]
kentyeh





發文: 642
積分: 6
於 2018-03-14 00:40 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
用 Batch Insert速度會快一點,你可以用jdbc batch insert谷哥一下,會找到很多範例,
而且你說有幾萬筆資料,就必須慮到 Transaction,
照你的寫法,每一筆都是一個交易,當然會慢到不行,
但若是全部都放進一個交易,你也會發現資料庫慢到不行(因為要記錄大量的transaction log)
, 所以比較好的方式是約1千筆做一次 transaction。

另外,若是你的資料是以千萬筆計量的話,你就要考慮特殊的工具了

以Oracle 來說有SQL Loader,
或是Postgresql 有 pg bulkload ,
就要看你的資料庫有無這類的工具可以大量倒資料進資料庫


reply to postreply to post
作者 Re:SQL語法問題(急) [Re:kentyeh]
markk1933





發文: 4
積分: 0
於 2018-03-14 09:14 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Post is deleted

markk1933 edited on 2018-05-10 02:57
reply to postreply to post
作者 Re:SQL語法問題(急) [Re:markk1933]
ynchang





發文: 151
積分: 0
於 2018-03-14 09:51 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
依照目前提供的code...
看不出loop和目前這段code的執行關係....

如果code如下所示, 可想而知一定會慢到爆炸
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (Data data: datas) {
  try {
    Class.forName("org.sqlite.JDBC");
    c = DriverManager.getConnection("jdbc:sqlite:SQLite.db");
    String sql = "INSERT INTO aaa values(?)";
    pstmt = c.prepareStatement(sql);
    pstmt.setString(1, data.toString());  
    pstmt.addBatch();
  } catch (Exception e) {
    e.printStackTrace();
  }
  pstmt.executeBatch();
  pstmt.close();
  c.close();
}

題外話: (說話很重, 玻璃心勿看)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
==================================

剛看SQL語法版, 前三個都是你提的問題
每個問題的標題都一樣, 而且都很急...
如果你是一位現役工程師, 我會建議你轉換跑道...
如果你是一位學生或單純學習者, 我會建議你先學會使用Google...
還有, 文章送出前, 有預覽功能可以看. 請解決掉不符預期的顯示內容.


reply to postreply to post
作者 Re:SQL語法問題(急) [Re:markk1933]
javaX





發文: 188
積分: 0
於 2018-03-14 11:47 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
寫個判斷式
1
2
3
if(筆數%3000==0){
pstmt.executeBatch();
}


reply to postreply to post
教育部:要如何保證畢業即就業
經濟部:所以公司都是我開的
財政部:發前單位請不要幻想能春風化雨
行政院:為什麼該單位發錢的時候都想去當老師
作者 Re:SQL語法問題(急) [Re:ynchang]
layolayo2002





發文: 40
積分: 0
於 2018-03-15 01:18 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
ynchang wrote:

題外話: (說話很重, 玻璃心勿看)



深有同感......
你說的真含蓄
而且標題還長一樣.....
我以為應該是要在標題簡述問題呢....


layolayo2002 edited on 2018-03-15 01:25
reply to postreply to post
» JWorld@TW »  JDBC/SQL討論區 » SQL 語法

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8