Ich bin auf der Suche nach bewährten Verfahren zur Implementierung eines TraceListener die von einer ASP.NET-Anwendung aus Protokolle in den SQL-Server schreibt.
Was sollte bei der Implementierung einer solchen Klasse beachtet werden, um Leistungseinbußen zu vermeiden?
Werden gespeicherte Prozeduren schneller sein als einfache ADO.NET INSERT-Anweisungen?
Ich mag die Idee des Schreibens der Protokolle in einen temporären In-Memory-Puffer und Flush es an die Datenbank zu einem späteren Zeitpunkt von einem Hintergrund-Thread, aber welche Datenstruktur ist am besten geeignet für ein solches Szenario? Warteschlange<T> scheint ein guter Kandidat zu sein, aber ich kann ihm keine Elemente ohne einen Synchronisationsmechanismus hinzufügen.
Ich habe über das Internet eine Artikel das ein Beispiel für einen benutzerdefinierten TraceListener zeigt, der in den SQL-Server schreibt, aber bevor ich es in den Produktionscode einfüge, würde ich gerne mehr Feedback erhalten.