Oracle Merge語句效率問題

2021-08-30 17:17:28 字數 994 閱讀 2802

大家一定都會遇到過資料庫操作中的 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...