sql >> Databasteknik >  >> RDS >> Oracle

Optimering vid sammanslagning från Oracle datalänk

/*+DRIVING_SITE(rd)*/ hint fungerar inte med MERGE eftersom operationen måste köras i databasen där den sammanslagna tabellen finns. Vilket i det här fallet är den lokala databasen. Det betyder hela resultatuppsättningen från fjärrtabellen dras över databaslänken och filtreras sedan mot data från den lokala tabellen.

Så kassera tipset. Jag föreslår också att du konverterar IN-satsen till 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)
    )

Kom ihåg att svar på frågor om prestandajustering utan tillräckliga detaljer är bara gissningar .



  1. Anropa en lagrad procedur från DECLARE-satsen när du använder markörer i MySQL

  2. Behöver hjälp med att infoga kommaseparerade data i mysql-databasen med PHP

  3. Laravelvandringar/db:seed superlångsamma

  4. Får fel när paketet körs