将 SQL Server Serilog sink 包装在 Async 中是否有意义?
Does it make sense to wrap the SQL Server Serilog sink inside Async?
我正在尝试尽量减少从 .NET Core 应用程序向 SQL 服务器写入日志对性能的影响。
过去,我将 Serilog File
接收器包裹在 Async
接收器内 - 这极大地提高了性能。
SQL Server sink documentation 声明当达到 batchPostingLimit
时,它会定期 and/or 批处理日志条目。我找不到关于当它决定发出 INSERT
命令时会发生什么的任何信息。
它是否相对于调用 Logger.Log(...)
的代码异步发生?如果不是,将 SQL Server Serilog 接收器包装在 Async 中是否有意义?
SQL 服务器接收器 derives from PeriodicBatchingSink
,异步执行所有批处理操作。
所以不,Serilog.Sinks.Async 不会提高当前形式的 SQL 服务器接收器的性能。
我正在尝试尽量减少从 .NET Core 应用程序向 SQL 服务器写入日志对性能的影响。
过去,我将 Serilog File
接收器包裹在 Async
接收器内 - 这极大地提高了性能。
SQL Server sink documentation 声明当达到 batchPostingLimit
时,它会定期 and/or 批处理日志条目。我找不到关于当它决定发出 INSERT
命令时会发生什么的任何信息。
它是否相对于调用 Logger.Log(...)
的代码异步发生?如果不是,将 SQL Server Serilog 接收器包装在 Async 中是否有意义?
SQL 服务器接收器 derives from PeriodicBatchingSink
,异步执行所有批处理操作。
所以不,Serilog.Sinks.Async 不会提高当前形式的 SQL 服务器接收器的性能。