我想使用 SQLite 作为 WCF 服务日志记录的数据库后端。一切看起来都不错,但是我如何从真实系统中提取数据库日志文件并且不锁定数据库以检查/分析日志?这个系统似乎负载非常大,每次我尝试获取数据库日志文件时,它都会锁定。
最佳答案
您现在可以使用 SQLite 的 Write-Ahead Logging使 SQLite 数据库能够同时读取和写入的模式。
使用 WAL 代替回滚日志有优点也有缺点。优势包括:
- 在大多数情况下,WAL 的速度要快得多。
- WAL 提供更多 并发性,因为读者不会阻止作者,而作者也不会 阻止读者。读写可以同时进行。
- 磁盘 使用 WAL,I/O 操作往往更具顺序性。
- WAL 使用 更少的 fsync() 操作,因此不易受到 fsync() 系统调用中断的系统上的问题。
关于c# - 使用 SQLite 进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983936/