c# - 使用 SQLite 进行日志记录

标签 c# asp.net .net sqlite rdbms

我想使用 SQLite 作为 WCF 服务日志记录的数据库后端。一切看起来都不错,但是我如何从真实系统中提取数据库日志文件并且不锁定数据库以检查/分析日志?这个系统似乎负载非常大,每次我尝试获取数据库日志文件时,它都会锁定。

最佳答案

您现在可以使用 SQLite 的 Write-Ahead Logging使 SQLite 数据库能够同时读取和写入的模式。

使用 WAL 代替回滚日志有优点也有缺点。优势包括:

  1. 在大多数情况下,WAL 的速度要快得多。
  2. WAL 提供更多 并发性,因为读者不会阻止作者,而作者也不会 阻止读者。读写可以同时进行。
  3. 磁盘 使用 WAL,I/O 操作往往更具顺序性。
  4. WAL 使用 更少的 fsync() 操作,因此不易受到 fsync() 系统调用中断的系统上的问题。

关于c# - 使用 SQLite 进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983936/

相关文章:

javascript - javascript/jQuery 中的 Ajax ComboBox 更改事件

c# - 在 .net 中没有 flash 的情况下,uploadify flash 按钮在浏览器中不起作用

c# - 将 100 KB 的内容发布到 Azure 应用服务 MVC 超时

c# - AvalonDock 2.0 增加 handle 尺寸

c# - 如何将未处理(转义)的单词放入 String.Format

c# - FormsAuthenticationTicket 过期

c# - 使用 TCP 发送多个字符串太快了我该如何等待?

c# - 在 C# 中调整 JPEG 图像的大小会降低其分辨率

c# - Entity Framework : Problem associating entities with nullable field

c# - 更改其他进程的键盘布局