sql >> Database >  >> RDS >> Sqlserver

Grote hoeveelheden oude gegevens archiveren in SQL Server

Als u archief zegt, betekent dit "gegevens moeten bewaren voor later gebruik".

Als de gegevens onder andere nu niet beschikbaar blijven, loopt u het risico deze te verliezen als u vertrouwt op tape-back-ups. U moet ook schijfruimte hebben om het in de toekomst te herstellen.

Dit zijn natuurlijk geen onoverkomelijke problemen, maar tenzij de zaken kritiek zijn, zou ik de gegevens online houden totdat het tegendeel is bewezen. Mijn ervaring leert dat mensen gearchiveerde gegevens willen wanneer je het het minst verwacht...

Een optie (de vraag is getagd met SQL Server 2008) is compressie van gegevens . U kunt archieftabellen comprimeren die bijvoorbeeld online zijn.

Om een ​​archieftabel te maken.

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

Of gebruik partitionering om hetzelfde te bereiken

Als de gegevens online zijn, kunt u de "huidige" tabel verder verkleinen en gegevens ouder dan bijvoorbeeld 3 maanden in een gecomprimeerde archieftabel/partitie hebben




  1. Hoe alleen de datumwaarde uit het datumveld in Oracle te extraheren?

  2. Verschillen tussen MySQL en SQL Server

  3. hoe kan ik de top 100-records op de sql-server bijwerken?

  4. Dit Polygoon-object sluit zichzelf. Waarom mislukt deze insert nog steeds met Error 3037:Ongeldige GIS-gegevens?