sql >> Database teknologi >  >> RDS >> Oracle

Optimering ved fletning fra Oracle datalink

/*+DRIVING_SITE(rd)*/ hint virker ikke med MERGE, fordi operationen skal køre i databasen, hvor den flettede tabel sidder. Hvilket i dette tilfælde er den lokale database. Det betyder hele resultatsættet fra den eksterne tabel trækkes hen over databaselinket og filtreres derefter mod dataene fra den lokale tabel.

Så kasser tippet. Jeg foreslår også, at du konverterer IN-klausulen til en join:

Merge into project p
using (select rp.projectID,
              rp.otherdata
       FROM Project ld
            inner join [email protected] rd
                     on rd.projectID = ld.projectID
      where ld.LastUpdated < (sysdate - 6/24)) q
-- This select in the in clause one returns 10 rows. Its a test database.
    On (q.projectID = p.projectID)
    )

Husk, at svar på spørgsmål om præstationsjustering uden tilstrækkelige detaljer er bare gæt .



  1. Dynamisk 'LIKE'-erklæring i SQL (Oracle)

  2. Sådan rettes fejlen "Ingen dialektkortlægning for JDBC-type:-1" i java

  3. Mysql Opdatering af en post med en værdi fra den forrige post

  4. Hvordan eksporterer man fuldtekstfiler med SQL?