ORACLE程序中,用到了自定義的幾個臨時表TEMP1,在邏輯實作中會洗掉這個temp1,并重新插入資料.
于是之前的開發用的delete from temp1.
最初的時候也沒發現有別的問題.但是最近的一個專案頻繁的報"試圖訪問正在使用的臨時表".百度了下說是delete速度慢,造成的.建議使用truncate table.
確實是解決了這個問題. 但是在使用truncate table的時候,又帶來了另外一個問題,執行truncate table 會自帶commit,這樣存盤程序如果發生邏輯例外需要回滾的時候,就沒法再回滾.
求指點有什么方法能加快delete table的速度 或者能控制truncate table不自動commit?
uj5u.com熱心網友回復:
沒人么...uj5u.com熱心網友回復:
是要洗掉表,還是洗掉表中的資料 ?uj5u.com熱心網友回復:
臨時表的資料有多少? truncate table必定會提交,無法改變uj5u.com熱心網友回復:
把這個 洗掉表內容的操作 寫到一個 程序里面,呼叫這個程序。 洗掉用分批提交或者 truncate 都行uj5u.com熱心網友回復:
樓主說的臨時表是temporary table嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/57074.html
標籤:基礎和管理
