Dipende davvero da quanto dei dati sta cambiando. Supponiamo che questa tabella abbia 20 colonne. E hai anche 5 indici - ognuno su un diff. colonna.
Ora, se i valori in tutte e 20 le colonne cambiano OPPURE anche se i dati in 5 colonne cambiano e queste 5 colonne sono tutte indicizzate, allora è meglio "eliminare e inserire". Ma se cambiano solo 2 colonne e diciamo che non fanno parte di alcun indice non cluster, allora potresti essere meglio "Aggiornando" i record perché in questo caso verrà aggiornato solo l'indice cluster (e gli indici non dovranno essere aggiornato).
Su ulteriori ricerche, ho scoperto che il mio commento sopra è in qualche modo ridondante poiché SQL Server internamente ha 2 meccanismi separati per eseguire un AGGIORNAMENTO. - Un "aggiornamento sul posto" (ovvero modificando il valore di una colonna con uno nuovo nella riga originale) o come "AGGIORNAMENTO non sul posto" (ELIMINA seguito da un INSERTO).
Gli aggiornamenti sul posto sono la regola e vengono eseguiti se possibile. Qui le righe rimangono esattamente nella stessa posizione sulla stessa pagina nella stessa misura. Solo i byte interessati sono chnaged. Il tlog ha un solo record (a condizione che non vi siano trigger di aggiornamento). Gli aggiornamenti avvengono in caso di aggiornamento di un heap (e lo spazio nella pagina è sufficiente). Gli aggiornamenti si verificano anche se la chiave di clustering cambia ma la riga non deve spostarsi affatto.
Ad esempio: se hai un indice cluster sul cognome e hai i nomi: In grado, Baker, Charlie Ora vuoi aggiornare Baker a Becker. Nessuna riga deve essere spostata. Quindi questo può prendere posto. Considerando che, se è necessario aggiornare Able a Kumar, le righe dovranno essere spostate (anche se saranno sulla stessa pagina). In questo caso, SQL Server eseguirà un DELETE seguito da un INSERT.
Considerando quanto sopra, suggerirei di eseguire un normale AGGIORNAMENTO e lasciare che SQL Server capisca il modo migliore per farlo internamente.
Per maggiori dettagli sugli interni "AGGIORNAMENTO" o per quelli interni a SQL Server, consultare Kalen Delaney, il libro di Paul Randal e altri - Interni di SQL Server 2008 .