作者:
ssccg (23)
2016-03-08 20:41:00temp table是在commit的時候清空,跟connection無關你需要的是Transaction沒有用transaction時JdbcTemplate每個動作會auto commit忘了問哪種DB,因為你說的像oracle的所以上面是說oracle的你table A資料作完就不用了,那為什麼要commit?oracle的temp table是在commit(結束transaction時清空)所以就是開一個transaction中作完insert、join select之後再commit我猜你把commit當成insert...
作者:
yyc1217 (somo)
2016-03-08 23:04:00建立connection的成本蠻大的 如果太頻繁的確會造成影響這也是為什麼有connection pool 用query清空也許比較好或是每次建立不同的temp表 db再用排程刪掉
Oracle temp table 建立時可指明commit 或connectionclose 時清空。另,因為connection pool 並不會真的close connection,類似情況下不建議用後者
作者:
ssccg (23)
2016-03-09 02:56:00我不知道可以設成connection close時清空,不過因為pool的關係通常是用commit時清空的用法吧如果是connection時清空,在用pool的情況下你只能自己每個transaction去做trucate了只要有用connection pool,上層取到的connection都是wrap過的,你close都只是把connection還回pool,不能真的關掉可以要求改DB定義的話去換成on commit delete吧
你可以試著寫一個Procedure,把資料送進去後再處理
temp table可以用stored procedure開 執行完就消失了不需要管連線 要做這種一堆處理的寫在裡面速度會快點