Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 26. Nov 2010, 00:32
Code:
BULK INSERT
in eine frische Tabelle ist das richtige Stichwort.

Nehmen wir mal an deine Tabelle mit den Daten heißt
Code:
IMPORT_DATA
Dann würde ich wie folgt vorgehen:
1. CSV-Daten per BULK INSERT in die Tabelle
Code:
IMPORT_DATA_<YYYYMMDD>
(ersetze "<YYYYMMDD>" mit dem Tagesdatum) importieren.
2. Ist alles korrekt importiert worden dann innerhalb einer Transaktion
Code:
DROP TABLE IMPORT_DATA;
EXEC sp_rename '<Schema>.IMPORT_DATA_20101126', 'IMPORT_DATA';
Sollte der Import mal nicht funktionieren, dann sind die alten Daten noch da.

Wenn die Daten auch noch für einen Zeitraum x archiviert werden sollen, dann erzeuge eine Archiv-Tabelle mit folgenden Feldern:
Code:
Zeitpunkt [PRIMARY KEY]
ZeitID [PRIMARY KEY] // der Index aus IMPORT_DATA
// jetzt die restlichen Felder aus IMPORT_DATA
Über den Zeitpunkt kannst du dann Reorganisieren.

Sollte es Performance-Probleme geben, ist es ratsam diese Archiv-Tabelle auf einer anderen Festplatte anzulegen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat