sql >> Databáze >  >> RDS >> Oracle

Optimalizace při sloučení z datalinku Oracle

/*+DRIVING_SITE(rd)*/ nápověda nefunguje s MERGE, protože operace musí běžet v databázi, kde se nachází sloučená tabulka. Což je v tomto případě lokální databáze. To znamená celou sadu výsledků ze vzdálené tabulky je načten přes odkaz na databázi a poté filtrován podle dat z místní tabulky.

Takže nápovědu zahoďte. Také doporučuji převést klauzuli IN na spojení:

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)
    )

Mějte prosím na paměti, že odpovědi na otázky týkající se ladění výkonu bez dostatečných podrobností jsou jen odhady .



  1. SQL dotaz pomocí dvou dat

  2. Potvrzení a transakce MySQL

  3. Ukládejte citlivá data v Silverstripe 3.1

  4. Vytvoření rychlého sémantického vyhledávače MySQL pro soukromé články od nuly