将SQL Server Serilog接收器包装在Async中是否有意义?

时间:2019-06-09 02:23:52

标签: c# sql-server .net-core serilog

我正在尝试最小化从.NET Core应用程序将日志写入SQL Server的性能影响。

过去,我将Serilog File接收器包装在Async接收器中-这极大地提高了性能。

SQL Server sink documentation指出它定期和/或在到达batchPostingLimit时批处理日志条目。我找不到有关决定发出INSERT命令的情况的任何信息。

它是否相对于称为Logger.Log(...)的代码异步发生?如果不是,将SQL Server Serilog接收器包装在Async中是否有意义?

1 个答案:

答案 0 :(得分:1)

SQL Server接收器derives from PeriodicBatchingSink,它异步执行所有批处理操作。

因此, Serilog.Sinks.Async 不会提高SQL Server接收器当前形式的性能。