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

Arkivering af store mængder gamle data i SQL Server

Når du siger arkiv, indebærer dette "behov for at opbevare data til senere brug".

Blandt andet, hvis dataene ikke efterlades tilgængelige nu, risikerer du at miste dem, hvis du er afhængig af tape backups. Du skal også have diskplads for at gendanne den i fremtiden.

Disse er selvfølgelig ikke uoverstigelige problemer, men medmindre tingene er kritiske, vil jeg holde dataene online, indtil det modsatte er bevist. Min erfaring viser, at folk vil have arkiverede data, når man mindst venter...

En mulighed (spørgsmålet er tagget SQL Server 2008) er komprimering af data . Du kan f.eks. komprimere arkivtabeller, der er online.

For at oprette en arkivtabel.

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

Eller brug partitionering for at opnå det samme

Hvis dataene er online, kan du reducere den "aktuelle" tabel yderligere og have data ældre end f.eks. 3 måneder i en komprimeret arkivtabel/partition også




  1. Emuler MySQL LIMIT-klausul i Microsoft SQL Server 2000

  2. Bruger med tildelingsmulighed kan ikke tildele oprette bruger

  3. MySQL langsom forespørgsel med join, selvom EXPLAIN viser en god plan

  4. Logiske databasesikkerhedskopier ved hjælp af MySQL Shell