大家一定都會遇到過資料庫操作中的 update,
也一定會考慮過主鍵重複的問題,
簡單的解決方法就是先 select ,
然後根據返回值判斷是 insert 還是 update.
因為公司要求這個用乙個語句執行,
所以調查了 oracle 自身的 merge 語句,
針對效率就調查的結果如下:
操作次數為 1 時
select 花費時間 47
merge 花費時間 0
------------------------------
操作次數為 10 時
select 花費時間 78
merge 花費時間 32
------------------------------
操作次數為 100 時
select 花費時間 906
merge 花費時間 578
------------------------------
操作次數為 1000 時
select 花費時間 6328
merge 花費時間 5235
------------------------------
操作次數為 10000 時
select 花費時間 71359
merge 花費時間 104438
------------------------------
操作次數為 100000 時
select 花費時間 1324890
merge 花費時間 1594922
根據pl/sql developer中執行來看
merge 和 update 的效率差不多一樣,
平均都是 0.015秒.
可不知道為什麼 執行到後面, merge的效率會降低.
不解.
---------
開始時懷疑是表中含有大資料量時merge操作比較慢,
可在pl/sql developer中執行沒有找到明顯的差距.
oracle更新語句merge和update
update update語句更新需要根據索引或者資料列遍歷所有行 語句舉例 update table1 a set column1 select column from table2 b where a.col b.col merge merge只需要遍歷一次表,可以更新可以插入 語句舉例 mer...
oracle中merge的神奇
merge into tb1 a using select b.id,c.price from tb2 b left join tb3 c where b.id c.id d 這裡using 可以子查詢 on a.id d.id when matched then udpdate a.price b...
如何理解T SQL中Merge語句
原文 如何理解t sql中merge語句 寫在前面的話 之前看過merge語句,感覺沒什麼用,完全可以用其他的方式來替代,最近又看了看merge語句,確實挺好用,可以少寫很多 看起來也很緊湊,當然也有別的優點。正文開始 sql server 2008 引入了merge關鍵字,主要是在一條語句裡面可以...