Ich schreibe immer Nachrichten in eine "EventLog" -Tabelle. Bei der Verarbeitung großer Datenmengen verwalte ich die Daten in Blöcken und schreibe nach jedem Block Statusaktualisierungen in das EventLog.
Wenn ich den Fortschritt des lang laufenden Prozesses überprüfen möchte, frage ich einfach die EventLog-Tabelle ab.
Beispiel für die Ausgabe:
-------------------
- Mein großes Update -
-------------------
Gestartet: 2011-05-03 10:00:00
Zu verarbeitende Datensätze: 1.000.000
Stücke: 200
--- Chunk 1 ---
Versuch, MyTable zu aktualisieren
Datensätze aktualisiert: 5000
Verbleibende Aufzeichnungen: 995.000
Durchsatz: 4210 Datensätze pro Sekunde
--- Chunk 2--
Versuch, MyTable zu aktualisieren
Datensätze aktualisiert: 5000
Verbleibende Aufzeichnungen: 990.000
Durchsatz: 3555 Datensätze pro Sekunde
--- Chunk 3--
etc.
Ich habe auch Spalten in der EventLog-Tabelle, um zu verfolgen, wann die Nachricht geschrieben wurde, welcher Prozess die Nachricht geschrieben hat usw. Es tut mir leid, dass ich diese Informationen nicht in mein Beispiel aufgenommen habe.