Pull to refresh

Comments 7

Интересно, что если в обзервере будет необработанное исключение, то диагностируемый код тоже упадёт (HttpWebRequest).
Еще прикольно, что потенциально можно изменять объекты.

А где бы взять список всех событий SqlClient подобных «System.Data.SqlClient.WriteCommandBefore»? Всегда хотелось уметь положить в лог размер трафика input/output от ADO/SqlClient операций, может быть SQL Client публикует такое событие?

Список событий я привёл во второй части.


У SqlCommand есть свойство Statistics, можно попробовать там поискать нужное значение для размера трафика. Вот тут есть описание: Provider Statistics for SQL Server.

Спасибо огромное, слона и не заметил. Для SqlConnection только. А еще вопрос, может быть знаете для EfCore dbContext такую же статистику можно получить стандартными средствами EfCore? Всегда можно докопаться до SqlConnecton через DBContext, но я не уверен что правило выполняется всегда «один DbContext — один SqlConnection». Выясню, но если есть мнение — поделитесь. Еще раз спасибо.
Для EF с событиями от DiagnosticSource приходит только время выполнения. И я не уверен, что он знает что-нибудь про объем пересылаемых данных.
Вообще, я бы не очень доверял свойству Statistics, у нас с ним были проблемы, что время выполнения там неправильно указывается, и пришлось мерить через Stopwatch.
Надо отметить, что если захочется использовать timestamp, то в System.Data.SqlClient.WriteCommandBefore его нет, хотя он есть в After. Если использовать Microsoft.Data.SqlClient, то там он есть в обоих событиях.
Sign up to leave a comment.