Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Archiwizacja dużych ilości starych danych w SQL Server

Kiedy mówisz „archiwum”, oznacza to „musisz zachować dane do późniejszego wykorzystania”.

Między innymi, jeśli dane nie są teraz dostępne, istnieje ryzyko ich utraty, jeśli polegasz na kopiach zapasowych na taśmach. Ponadto musisz mieć miejsce na dysku, aby przywrócić je w przyszłości.

Nie są to oczywiście problemy nie do pokonania, ale o ile rzeczy nie są krytyczne, przechowuję dane online, dopóki nie udowodnię, że jest inaczej. Moje doświadczenie pokazuje, że ludzie chcą zarchiwizowanych danych, kiedy najmniej się tego spodziewasz...

Jedną z opcji (pytanie jest otagowane SQL Server 2008) jest kompresja danych . Możesz na przykład skompresować tabele archiwalne, które są dostępne online.

Aby utworzyć tabelę archiwum.

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

Lub użyj partycjonowania osiągnąć to samo

Jeśli dane są online, możesz jeszcze bardziej zmniejszyć „bieżącą” tabelę i mieć dane starsze niż, powiedzmy, 3 miesiące w skompresowanej tabeli/partycji archiwum




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSTR() odpowiednik w SQL Server

  2. Jak naprawić „Tylko jedno wyrażenie można określić na liście wyboru…” w SQL Server

  3. COUNT(DISTINCT) w wielu kolumnach w SQL Server 2008

  4. Wdrażanie stronicowania za pomocą OFFSET FETCH NEXT w SQL Server

  5. znajdź brakujące wpisy dla dni roboczych i wypełnij wiersz wartościami z najbliższej daty