c# - 在 System.Data.SQLite 中设置 ConnectionTimeout

标签 c# sqlite system.data.sqlite

我认为我的 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/

相关文章:

c# - 如何从 getter 或 setter 调用异步方法?

c# - 使用 WebClient 或 WebRequest 登录网站并访问数据

entity-framework - 替换父项并将子项链接到它后保存 ObjectContext 时出错

c# - System.Data.SQLite BackupDatabase() 抛出 "not an error"

c# - Quartz.NET + SQLite Jobstore 抛出 JobPersistenceException

c# - 正则表达式获取字符串的前 6 个和后 4 个字符

c# - 解决方案中的多个项目 : Interface naming convention

SQLITE 标识符的限制字符是什么

python - sqlalchemy,如果它不存在则创建一个 sqlite 数据库

android - 检查记录是否存在,如果存在则更新它,否则在 PhoneGap 中创建新记录?