各位大神。現在開發程序中遇到一個難點。具體描述如下:有兩個表 一個臨時表只有四個欄位,這個表資料是3000萬。還有一個當前表資料量是20萬。要處理的是用臨時表中的內容去更新當前表中的資料。我的思路是用當前表的和臨時表聯合查詢出來全部符合當前表的資料,然后根據查詢出來的資料去更新當前表的其中三個欄位。現在查詢效率已經沒問題 但是用聯合查詢出來的20萬資料更新當前表是用普通update陳述句更新的 執行效率太慢 一個小時才更新不到十萬資料。請問各位大神 有什么辦法 幫幫忙 當前表只能更新 不能洗掉重建。謝謝
uj5u.com熱心網友回復:
一個小時 更新不到10萬? 而且只有4個欄位 你的連接寫得是有好復雜uj5u.com熱心網友回復:
的20萬資料更新當前表是用普通update陳述句更新的 執行效率太慢 一個小時才更新不到十萬資料一條一條的更新的嗎 ?
貼一下陳述句吧;
uj5u.com熱心網友回復:
用merge..into,不要用update,我也是最近作業出現了類似的問題,更新600萬資料要4個小時,最后用merge..into,10幾分鐘搞定。望采納。uj5u.com熱心網友回復:
同樓上,用merge但是即使用merge,也要貼你的陳述句和執行計劃,因為執行計劃也可能會有坑
uj5u.com熱心網友回復:
幾點建議:1. update如果優化不好,可以考慮delete以后再insert,通常會快很多
2. merge into可用,但是要當心,寫的不好容易出錯,導致資料例外
3. 請人幫忙需要提供具體SQL和表結構以及分析計劃,光靠說很難確定問題所在
uj5u.com熱心網友回復:
首先你把sql發出來一下,然后說下表量,分分鐘幫你把sql優化好轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/60655.html
標籤:開發
上一篇:Oracle重新配置資料庫選件時最后一步出錯,提示Could not find appropriate listener for this database.
下一篇:oracle 11g 做XTTS 遷移時,tsbkupmap.txt和incrbackups.txt內容始終時空的?
