Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Eliminazione di grandi quantità di dati da SQL Server 2008

La tua domanda è piuttosto vaga, ma penso che tu stia dicendo questo:

  • Posso INSERIRE i dati nel mio database
  • L'AGGIORNAMENTO dei miei dati sembra difficile, quindi preferirei semplicemente CANCELLARE e poi INSERIRE di nuovo (perché ho già scritto quel codice)

Direi che questa è una cattiva idea, per i seguenti motivi (e senza dubbio molti altri):

  • Anche se elimini semplicemente, devi comunque identificare le righe corrette da eliminare, eliminare dalle tabelle nell'ordine corretto ecc. Quindi è improbabile che risparmierai comunque molto tempo
  • Aggiungerai una complessità non necessaria e un lavoro di manutenzione aggiuntivo all'applicazione:gestione delle transazioni, codice aggiuntivo da mantenere, modifiche alle autorizzazioni ecc.
  • L'aggiunta di logica lato server al database sotto forma di trigger e/o procedure diventerà più difficile perché un DELETE non significa più necessariamente DELETE, potrebbe significare l'inizio di un UPDATE (intendo logicamente, non fisicamente) e questo è un enorme problema da mantenere e potenzialmente violare qualsiasi codice, traccia o audit basato su azioni o eventi DML
  • Il database dovrà eseguire più log perché hai diviso un'operazione in due

Forse hai buone ragioni per voler evitare un AGGIORNAMENTO, ma "è difficile scrivere" non dovrebbe essere una di queste (mi scuso se sto semplificando eccessivamente la tua situazione).

Potresti ottenere una risposta più utile se spieghi esattamente cosa è "difficile", fornisci alcune informazioni su cosa significa "grande quantità di dati", mostri alcune strutture di tabelle e codice che illustrano le tue difficoltà, ecc.