Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle Merge vs Select puis Insert ou Update

La règle empirique c'est-à-dire que si vous pouvez le faire dans un SQL, cela fonctionnera généralement mieux que de le faire dans plusieurs instructions SQL.

J'irais avec le MERGE s'il fait le travail.

Aussi - autre suggestion :vous pouvez éviter de répéter des données dans votre relevé, par exemple :

MERGE INTO table
 USING (SELECT 'some_id' AS newid,
               'some_val' AS newval
        FROM dual)
 ON (rowid = newid)
WHEN MATCHED THEN
 UPDATE SET colname = newval
WHEN NOT MATCHED THEN
 INSERT (rowid, colname)
 VALUES (newid, newval)