我正在尝试最小化从.NET Core应用程序将日志写入SQL Server的性能影响。
过去,我将Serilog File
接收器包装在Async
接收器中-这极大地提高了性能。
SQL Server sink documentation指出它定期和/或在到达batchPostingLimit
时批处理日志条目。我找不到有关决定发出INSERT
命令的情况的任何信息。
它是否相对于称为Logger.Log(...)
的代码异步发生?如果不是,将SQL Server Serilog接收器包装在Async中是否有意义?
答案 0 :(得分:1)
SQL Server接收器derives from PeriodicBatchingSink
,它异步执行所有批处理操作。
因此, Serilog.Sinks.Async 不会提高SQL Server接收器当前形式的性能。