SQLite 磁盘 I/O 错误 45 Gb 数据库

SQLite Disk I/O error-45 Gb database

我一直在使用 SQLite 数据库存储我的数据,没有任何问题,直到最近我遇到了

disk I/O error

   at Finisar.SQLite.sqlite3.Throw()
   at Finisar.SQLite.sqlite3.exec(String sql)
   at Finisar.SQLite.SQLiteTransaction.CommitOrRollback(Boolean commit)

SQLite 数据库所在的本地驱动器上有足够的 space。我是 运行 交易中的插入者。我怀疑 sqlite 数据库可能已经损坏,因为它达到了 45GB 的大小,但是我能够毫无问题地在 SQLite 数据库查看器中打开数据库。此错误发生在客户端计算机上,我无法在开发环境中重现此错误。在这一点上,我不知道为什么会出现这个错误。 使用单个 "SQLiteConnection" 实例插入 45Gb 数据会导致这样的问题吗?

我只在开始时打开一次连接,在最后完成所有插入后才关闭一次。

非常感谢这里专家的任何帮助。

提前致谢。

我终于找到问题了。操作系统错误 665,表示文件系统限制已 reached.This 如果需要大量 ATTRIBUTE_LIST_ENTRY 来维护 NFTS 中的大量碎片文件,则会出现问题。 NTFS 卷中碎片过多的文件可能不会超过特定大小

我使用 /L 选项格式化驱动器以获得较大的 FRS,这解决了问题。 我需要确保数据库不会碎片化太多。 希望这对某人有所帮助。