的 经验法则 是,如果你可以在一个sql做到这一点,它会比通常在多个sql语句,这样做有更好的表现。
如果可以,我会选择MERGE。
另外-另一个建议:您可以避免在语句中重复数据,例如:
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)