大家一定都會遇到過資料庫操作中的 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 用法而詳解
merge 從乙個表中選擇記錄,insert或者update到另外的表中 merge into schame 表名 別名 指定需要更新或者插入的表名 using schame 表名 別名 被插入或者更新的表名,也就是資料來源表名 on 條件式 注意要用括號 條件式滿足的時候,執行更新 when ma...
oracle merge 更新或插入資料
size large b 主要功能 b size color red 提供有條件地更新和插入資料到資料庫表中 color 如果該行存在,執行乙個update操作,如果是乙個新行,執行insert操作 color red 避免了分開更新 color color blue 提高效能並易於使用 color...
sql語句執行效率
兩種執行的效果一樣,但執行的速度不一樣,在大資料的時候,可看出。select distinct a.o flowid from chengjiinfo as a where k kecheng not in select kemu from chengjidankeinfo where o flow...