Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Merge vs. Select, dann Insert oder Update

Die Faustregel Das heißt, wenn Sie dies in einer SQL-Anweisung tun können, ist die Leistung im Allgemeinen besser als in mehreren SQL-Anweisungen.

Ich würde mich für MERGE entscheiden, wenn es funktioniert.

Außerdem - ein weiterer Vorschlag:Sie können die Wiederholung von Daten in Ihrer Erklärung vermeiden, z. B.:

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)