sql >> Databasteknik >  >> RDS >> Sqlserver

Arkivering av stora mängder gammal data i SQL Server

När du säger arkiv, innebär detta "behov av att behålla data för senare användning".

Bland annat, om data inte lämnas tillgänglig nu, riskerar du att förlora den om du förlitar dig på bandbackuper. Du måste också ha diskutrymme för att återställa det i framtiden.

Dessa är naturligtvis inte oöverstigliga problem, men om inte saker och ting är kritiska, skulle jag hålla data online tills motsatsen bevisats. Min erfarenhet visar att folk vill ha arkiverad data när man minst anar...

Ett alternativ (frågan är taggad SQL Server 2008) är komprimering av data . Du kan till exempel komprimera arkivtabeller som finns online.

För att skapa en arkivtabell.

SELECT * INTO ANewArchiveTable
FROM CurrentTable
WHERE SomeDateColumn <= DATEADD(year, -2, GETDATE())

Eller använd partitionering för att uppnå samma

Om data är online kan du reducera den "aktuella" tabellen ytterligare och ha data äldre än t.ex. 3 månader i en komprimerad arkivtabell/partition också




  1. Desinficerar/rymmer jag på rätt sätt?

  2. När uppdaterar MySQL indexen

  3. Uppdatera duplicerade rader med duplicerat hittat id

  4. Hitta min och max för delmängder av på varandra följande rader - luckor och öar