Я ищу лучшие практики для реализации TraceListener, который будет записывать журналы внутри SQL-сервера из приложения ASP.NET.
Какие вещи следует учитывать при внедрении такого класса, чтобы избежать снижения производительности?
Будут ли хранимые процедуры быстрее, чем простые инструкции ADO.NET INSERT?
Мне очень нравится идея записи журналов во временный буфер в памяти и сброс его в базу данных в какой-то более поздний момент из фонового потока, но какая структура данных наиболее подходит для такого сценария? Queue <T> кажется хорошим кандидатом, но я не могу добавить к нему элементы без какого-либо механизма синхронизации.
Я нашел через Интернет статью в которой показан пример пользовательского TraceListener, который пишет на SQL-сервер, но перед тем, как поместить его в производственный код я хотелось бы получить еще несколько отзывов.