c# - 将 SQL Server Serilog 接收器包装在 Async 中是否有意义?
问题描述
我试图最大限度地减少从 .NET Core 应用程序将日志写入 SQL Server 的性能影响。
过去,我将 SerilogFile
水槽包裹在水槽内Async
——这极大地提高了性能。
SQL Server 接收器文档声明它会定期和/或在batchPostingLimit
到达时对日志条目进行批处理。我找不到任何关于它决定发出INSERT
命令时会发生什么的信息。
它是否相对于调用的代码异步发生Logger.Log(...)
?如果没有,将 SQL Server Serilog 接收器包装在 Async 中是否有意义?
解决方案
SQL Server 接收器派生自PeriodicBatchingSink
,它异步执行所有批处理操作。
所以不,Serilog.Sinks.Async不会提高当前形式的 SQL Server 接收器的性能。
推荐阅读
- python - 将项目插入到列表中的最后一个位置
- javascript - 将 childNodes 移动到其他 parent 只影响其中的一半
- php - 如何使用一些代码将数据插入引导表?
- javascript - 如何在按钮单击时确认文件上传
- php - 如何在 openSUSE 飞跃 15 上安装 pdo_sqlsrv php 扩展
- android - 当用户单击从一个应用程序发送到另一个应用程序的通知时,我想启动一个pendingIntent
- python - 在 Pandas 数据框中将值(例如使用 Gender)从字符串映射到 int
- codeigniter - Codeigniter,从控制器到视图的多个查询
- javascript - How to bind multiple arrays in one over an loop
- spring-boot - 使用 ZUUL 作为代理通过 URL 访问 Angular 6 组件