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

Sletning af store mængder data fra SQL Server 2008

Dit spørgsmål er ret vagt, men jeg tror, ​​du siger dette:

  • Jeg kan INDSÆTTE data i min database
  • Opdatering af mine data ser svært ud, så jeg foretrækker bare at SLETTE og derefter INDSÆT igen (fordi jeg allerede har skrevet den kode)

Jeg vil sige, at dette er en dårlig idé af følgende grunde (og uden tvivl mange flere):

  • Selvom du bare SLETTER, skal du stadig identificere de korrekte rækker, der skal slettes, slettes fra tabeller i den korrekte rækkefølge osv. Så det er usandsynligt, at du alligevel vil spare meget tid
  • Du vil tilføje unødvendig kompleksitet og ekstra vedligeholdelsesarbejde til applikationen:transaktionshåndtering, ekstra kode, der skal vedligeholdes, ændringer af tilladelser osv.
  • At tilføje logik på serversiden til databasen i form af triggere og/eller procedurer bliver vanskeligere, fordi en DELETE ikke nødvendigvis betyder DELETE længere, det kan betyde starten på en OPDATERING (jeg mener logisk, ikke fysisk), og det er en enorm smerte at vedligeholde såvel som potentielt at bryde kode, spor eller revisioner, der er baseret på DML-handlinger eller begivenheder
  • Databasen bliver nødt til at foretage mere logning, fordi du har delt en operation i to

Måske har du gode grunde til at ville undgå en OPDATERING, men "det er svært at skrive" burde ikke være en af ​​dem (undskyld, hvis jeg forsimpler din situation).

Du får måske et mere brugbart svar, hvis du forklarer præcis, hvad der er "svært", giver lidt baggrund om, hvad en "stor mængde data" betyder, viser nogle tabelstrukturer og kode, der illustrerer dine vanskeligheder osv.




  1. Hvordan sammenkædes kolonner med Laravel 4 Eloquent?

  2. Brug af en opdateringstrigger til at opdatere en anden tabel

  3. Hvis PostgreSQL-antal(*) altid er langsom, hvordan pagineres komplekse forespørgsler?

  4. på ms-sql server, hvad er det bedste værktøj til at få alle afhængigheder mellem alle objekterne?