Oracle中Merge語句效率問題

2021-08-25 09:26:59 字數 1039 閱讀 9571

大家一定都會遇到過資料庫操作中的 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關鍵字,主要是在一條語句裡面可以...