在System.Data.SQLite中设置ConnectionTimeout

时间:2009-07-24 00:33:31

标签: c# sqlite system.data.sqlite

我认为我的SQLite连接遇到数据库连接超时,但我不确定如何提高连接超时。可以使用ConnectionString.DefaultTimeout设置命令超时,但Connection.ConnectionTimout是只读的。有什么建议吗?

谢谢, 布赖恩

2 个答案:

答案 0 :(得分:11)

超过SQLite查询的默认(30秒)超时表明您的方法出了问题。

当并发连接太多时,通常会发生超时。当你有交错的写/读事务时,SQLite表现不佳。

确保在单个事务中分块相关的SQL语句(性能增益可以是x1000!)。

另一个提示:默认情况下 - 启动事务时(BeginTransaction) - 默认行为是立即获得写锁定。尝试使用BeginTransaction(deffered)版本,并指定您希望延迟获取写锁,直到实际需要它为止。如果有多个读者,这将对您有所帮助,因为现在他们可以同时运行。

答案 1 :(得分:2)

在连接字符串中设置:SqlConnection