Performance: une sous-Requête ou de Rejoindre

J'ai une petite question concernant la performance d'un sous-requête /rejoindre une autre table

INSERT
INTO Original.Person
  (
    PID, Name, Surname, SID
  )
  (
    SELECT ma.PID_new , TBL.Name , ma.Surname, TBL.SID 
    FROM Copy.Person TBL , original.MATabelle MA
    WHERE TBL.PID         = p_PID_old
      AND TBL.PID         = MA.PID_old
  );

C'est mon SQL, maintenant cette chose qui tourne autour de 1 million de fois ou plus.
Ma question est de savoir ce qui serait le plus rapide?

  • Si je change TBL.SID ( Select new from helptable where old = tbl.sid )

OU

  • Si j'ajoute le "HelpTable" à la from et de faire le rejoindre dans la where?

edit1
Eh bien, ce script ne fonctionne que comme beaucoup comme il r des personnes.

Mon programme dispose de 2 modules de celui qui remplit MaTabelle et un que les transferts de données. Ce programme de fusion de 2 bases de données et coz de ce que, parfois, la même Clé est utilisée.
Maintenant, je suis en train de travailler sur une solution qui n'existe des doubles de Clés.

Ma solution est de faire un "HelpTable'. Le propriétaire de la clé(SID) génère une nouvelle clé et l'écrit dans un "HelpTable'. Toutes les autres tables qui utilisent cette clé peut le lire à partir de la HelpTable'.

edit2
Quelque chose dans mon esprit:
si une table comme une Clé qui peut être null(foreignkey qui n'est pas lié)
alors ce ne sera pas le même à partir de ou?

OriginalL'auteur domiSchenk | 2010-05-20