Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Archivage de grandes quantités d'anciennes données dans SQL Server

Lorsque vous dites archiver, cela implique "nécessité de conserver les données pour une utilisation ultérieure".

Entre autres choses, si les données ne sont pas disponibles maintenant, vous courez le risque de les perdre si vous comptez sur des sauvegardes sur bande. De plus, vous devez disposer d'un espace disque pour le restaurer à l'avenir.

Ce ne sont bien sûr pas des problèmes insurmontables, mais à moins que les choses ne soient critiques, je garderais les données en ligne jusqu'à preuve du contraire. Mon expérience montre que les gens veulent des données archivées quand on s'y attend le moins...

Une option (la question est étiquetée SQL Server 2008) est compression des données . Vous pouvez compresser des tables d'archives qui sont en ligne par exemple.

Pour créer une table d'archives.

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

Ou utilisez le partitionnement pour obtenir le même

Si les données sont en ligne, vous pouvez réduire davantage la table "actuelle" et avoir des données plus anciennes que, disons, 3 mois dans une table/partition d'archive compressée également