update欄位執行效率慢的解決辦法

2021-09-12 14:17:45 字數 1046 閱讀 9514

update欄位時,執行效率慢可以換成下邊這種方式:

解決辦法:merge intotableausing (括號裡面是你需要的字段,來自於其它表的資料 比如 tableb)on(tablea  跟tableb 的關聯條件)

when matched then update settablea.id=tableb.id ;

這是句式,下邊用案列來證明及 這個句式的具體使用方法。    

首先,我隨意取了一組需要的數,放入了臨時表exp_phone中

然後寫了一組update語句,**貼上不了,我就直接甩圖了,各位哥哥姐姐湊合一下吧。麼麼麼麼麼噠。

20000000多萬的耗費,時間很久,我沒有執行看到底有多久,等了好幾分鐘沒有執行完,感覺我是等不了這麼長時間的,

而且寫在存過裡面,時間太久效率太低也是不行的。所以我就想了其他的辦法。同事說可以用merge into ,於是我試了一下。

直接甩**及耗費截圖

從這張圖上可以看出來,耗費變成了4000+ 執行效率直接就變成了不到2s就執行完了,而且我在臨時表建了個索引,也走了索引,merge into 明顯提公升了update的效率,

update phone時是全表檢索一遍,一組一組的set,而merge into 是根據on 後邊的條件將全部符合的資料提取出來,一塊set 進需要update的表裡,所以效率會快一點。

大概就這個樣子了,若有不對之處,希望能得到大佬的指點。

Oracle中update執行效率的優化

工作中經常遇到update大表的時候執行效率很低,那麼怎樣才能讓oracle中update資料量比較大的表執行的更快呢?先看個簡單的例子吧 需求是我們要將表intf cms calluser tpye中的lant id更新成cms.serv base msg表中的latn id,關聯條件是intf ...

通過MySQL慢查詢日誌定位執行效率低的SQL語句

利用命令 show variables like query 檢視是否開啟慢查詢日誌 slow query log on表示開啟,off表示關閉 long query time 單位秒,如果查詢超過此處設定的秒數,則會被寫入到慢查詢日誌中 slow query log file 慢查詢日誌的目錄 如...

stackoverflow 訪問非常慢的解決辦法

stackoverflow是開發常用的提問和解決 問題 但自己訪問總是非常的慢,幾十秒甚至幾分鐘 我們可以對 stackoverflow只是訪問速度很慢,但終歸可以開啟,如果被牆不可能最後開啟的,所以排除。資源 jquery.min.js 這個資源請求一直處於阻塞狀態,發現其實是請求谷歌的jquer...