Einzelnen Beitrag anzeigen

exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#34

Re: Schnellste Insert Möglichkeit für eine DB?

  Alt 8. Mär 2010, 11:31
Zitat von moelski:
Moin !

Ich sehe da im Moment zwei Varianten:
1) Man schreibt jeden Datensatz sofort bei Erscheinen in die DB. Das (so verstehe ich das hier) erzeugt aber eine Menge Overhead.
2) Ich könnte Datensätze erst puffern und dann z.B. immer 10 Datensätze mittels Transaktion wegschreiben. Das würde den Overhead auf der DB verringern, aber mehr Aufwand am Client bedeuten.

Wie seht ihr das?
Wir erfassen hier ebenfalls in einer 24/7 Umgebung große Mengen von Messwerten. Es hat sich bewährt, die Daten lokal zu puffern und dann
blockweise in die DB zu schreiben. Wie die Pufferung aussieht richtet sich danach, welche Zeitverzögerung Du Dir erlauben kannst.
Ich puffere hier Blöcke von 3 Min. bis zu 1 Stunde.
Die Daten werden lokal in CSV Dateien geschrieben und dann nach Zeitraum X and den Server übertragen (FTP mit den Indys). Der schreibt dann diese Daten in _EINER_ Transaktion in die DB (Firebird). Es handelt sich dabei dann um einige hundert bis zu ettlichen tausend "inserts". Das geht granatenschnell und läuft hier sehr zuverlässig.
Direkt in die Datenbank werden nur die Daten geschrieben, deren Überwachung kritisch ist. Das erledigen die entsprechenden Clients dann selber.
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat