Jup. Das heist für eine Nachricht eine Sekunde
20.000 Nachrichten = 20.000 Sekunden = ca 5 Stunden bis die letzte bearbeitet wurde.
Und in der Zeit stauen sich neue Nachrichten an.
Also zulangsam....
Das Speichern kann immer "zu langsam" sein, auch wenn die
DB pfeilschnell arbeitet: Fehler in der Netzwerkverbindung, Windows Update, Virenscanner,
DB Maintainance etc.
Um auf der sicheren Seite zu sein, kann eine "2-Phasen-Persistenz" helfen: Einkommende Nachrichten werden zuerst lokal gespeichert (z.B. in einer Log-Datei), um anschließend von dort in die
DB übertragen zu werden. Das hat u.a. den Vorteil, dass das transaktionsbasierte
SQL-Insert im "Bulk-Mode" wesentlich schneller abläuft, als wenn jeder einzelne Insert commited wird. Beide Prozesse sollten natürlich als Threads oder in getrennten Services/Programmen ablaufen.
Fällt der Client aus, so kann aus der lokalen Log-Datei jederzeit die Übertragung wieder aufgenommen werden.
Dieses Szenario hat sich z.B. bei
BDE-Nachrichten-Verarbeitung über viele Jahre hinweg als robust und performant erwiesen.