IT 기술/DB 개념

MERGE

keun90 2025. 3. 25. 23:24

일반적인 merge 예시 <q1>

 

<q1>

merge into cutomser t using customer_delta s on (t.cust_id = s.cust_id)

when matched then update

 set t.cust_nm = s.cust_nm, t.email = s.email, ...

when not matched then insert

 (cust_id,,,, ) values

 (s.cust_id,,,,);

</q1>

 

간혹 merge를 활용해 update(<q2>)를 사용한다.. 그러지 말자.. 불필요한 테이블 접근은 좋지 않다.

update 대상 건수를 쉽게 확인하고자 한다면, <q3>을 활용하는 것을 권장한다.

 

<q2>

merge into emp t2

using( select t.rowid as rid, s.ename

            from emp t, emp_src s

            where t.empno = s.empno

            and t.ename = s.ename ) s

on (t2.rowid = s.rid)

when matched then update set t2.ename = s.ename;

</q2>

 

<q3>

update (

 select s.ename as s_ename, t.ename as t_ename

 from emp t, emp_src s

 where t.empno = s.empno

 and t.ename <> s.ename

)

set t_ename = s_ename;

</q3>

 

'IT 기술 > DB 개념' 카테고리의 다른 글

파티션을 활용한 대량 DELETE 튜닝  (0) 2025.04.14
파티션, 대량 UPDATE 튜닝  (0) 2025.04.07
파티션을 활용한 DML 튜닝  (0) 2025.04.03
Direct Path I/O  (0) 2025.03.29
SQLP 학습 이유  (0) 2025.03.24