Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Otimização ao mesclar do datalink Oracle


O /*+DRIVING_SITE(rd)*/ dica não funciona com MERGE porque a operação deve ser executada no banco de dados onde a tabela mesclada está. Que neste caso é o banco de dados local. Isso significa todo o conjunto de resultados da tabela remota é puxado pelo link do banco de dados e, em seguida, filtrado em relação aos dados da tabela local.

Então, descarte a dica. Também sugiro que você converta a cláusula IN em uma junção:
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)
    )

Lembre-se de que as respostas às perguntas de ajuste de desempenho sem detalhes suficientes são apenas suposições .