Hirdetés

Új hozzászólás Aktív témák

  • Cathfaern
    nagyúr

    Catfathern válasza teljesen jó.
    Viszont teljesítményben nem éppen optimális. A MERGE adja a legjobb teljesítményt, viszont azt nem két sor használni, bár nem is olyan vészes.
    Hozzáteszem, ha viszont mindig csak új adatot kell hozzáadni, akkor ez nyilván jobb teljesítményt fog hozni, mint egy merge:

    INSERT tbl_A (col, col2)
    SELECT col, col2
    FROM tbl_B
    WHERE NOT EXISTS (SELECT col FROM tbl_A A2 WHERE A2.col = tbl_B.col);

    Nem nagyon használtam még a MERGE-et, de rákeresve az nem töröl a cél táblából ha a forrás táblából kitöröltek egy sort, és itt az is feltétel volt.

    rum-cajsz
    Meg az is kérdés, hogy mennyi adat változik? Szóval ha mondjuk a sorok 90%-a állandó marad, akkor lehet érdemes megpróbálni insert / update / delete-el eljátszani. De ha a sorok 90%-a változik napról napra, akkor a delete -> insert verziónál nem nagyon lesz hatékonyabb. Mondjuk ha emberi mennyiségű adatról van szó, akkor meg kb. mindegy :) (és szerintem ha többi milliárd rekordos táblák lennének, akkor nem itt és nem így merülne fel a kérdés, de lehet tévedek)

Új hozzászólás Aktív témák