我认为我的 SQLite 连接遇到数据库连接超时,但我不确定如何增加连接超时。可以使用 ConnectionString.DefaultTimeout 设置命令超时,但 Connection.ConnectionTimout 是只读的。有什么建议吗?
谢谢, 布莱恩
最佳答案
超过 SQLite 查询的默认(30 秒)超时强烈表明您的方法存在问题。
超时通常发生在并发连接过多时。当您有交错的写/读事务时,SQLite 表现不佳。
确保将相关的 SQL 语句分块到单个事务中(性能提升可达 1000 倍!)。
另一个提示:默认情况下 - 当您启动事务 (BeginTransaction) 时 - 默认行为是立即获取写锁。尝试改用 BeginTransaction(deffered) 版本,并指定您要推迟获取写锁,直到实际需要它为止。如果有多个读取器,这将对您有所帮助,因为现在它们将能够同时运行。
关于c# - 在 System.Data.SQLite 中设置 ConnectionTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1175240/