![]() |
Datenbank: - • Version: - • Zugriff über: -
Schnelle DB / Dateibasierend
Servus,
wir haben ein Programm was sehr viele Daten über Sockets bekommt. Diese müssen verarbeitet werden und geloggt. Zur Zeit wird in eine TXT geloggt. Die log muss komplexer werden. Also habe ich verschiede DB-Systeme (embedded) ausprobiert. Beim Test war SQLite recht schnell. Ohne Commit nur ein insert kommt man auf 10.000 inserts in 6 Sekunden. Bei jedem insert müssen die Daten aber auch auf die Platte geschrieben werden. Das Commit braucht einfach zu lange. Da dauert eine Verarbeitung ca. 1 Sekunde, was viel zu lang ist. Jetzt muss ich eine alternative finden, vielleicht habt ihr noch ideen... gruß |
AW: Schnelle DB / Dateibasierend
Wieviel Einträge kommen den pro Sekunde?
|
AW: Schnelle DB / Dateibasierend
ADS ist schnell. Unterstützt aber keine Transaktionen im Embedded Modus. Auch muss man aufpassen ob man bei Verwendung nicht Serverlizenzen benötigt.
|
AW: Schnelle DB / Dateibasierend
Zitat:
In diesem Fall einfach die Datenbankoperationen in einen Thread auslagern (oder mehrere, jeweils mit einer Connection pro Client-Thread). Und man kann die eintreffenden Daten erst mal in einer in-memory Queue speichern, um kurze Spitzenlasten abfangen zu können. Sind es asynchrone Sockets, die die Haupt-Messageloop verwenden? Auch diesen Bereich könnte man in einen oder mehrere Hintergrundthreads auslagern, mit Indy oder Synapse und blockierenden Sockets wird es dann deutlich einfacher und performanter. |
AW: Schnelle DB / Dateibasierend
Hallo,
falls es noch um das gleiche Thema geht wie neulich. Hier ein nochmal mein Hinweise zu SQLITE und Transaktionen, falls Du das übersehen hast. ![]() Besorg oder compilier dir eine Version ohne Journaling und Transkationshandling. Brauchst Du ja für s Logging nicht, oder? |
AW: Schnelle DB / Dateibasierend
Zitat:
Zitat:
Zitat:
Kann die Daten aber auch nicht zwischenspeichern oder in einer Queue speichern. Wenn der Rechner abschmiert gehen eventuell 200 Einträge verloren. |
AW: Schnelle DB / Dateibasierend
Zitat:
Wie groß ist ein Eintrag? |
AW: Schnelle DB / Dateibasierend
Zitat:
![]() |
AW: Schnelle DB / Dateibasierend
Zitat:
Wie viele pro Sekunde genau kommen kann ich dir nicht sagen. Können bis zu 50 Nachrichten sein. |
AW: Schnelle DB / Dateibasierend
Zitat:
Nein das brauche ich nicht..... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz