为SQLITE指定SELECT超时

时间:2011-12-05 16:04:24

标签: sql sqlite timeout

是否可以指定SELECT查询可以使用SQLITE的最长时间?

如果您拥有大表并且用户必须输入免费搜索字词,则情况会很有用。如果没有快速找到搜索的术语,则扫描整个表格,这可能需要很长时间,因为通常不能使用索引。

让SQLITE在几秒钟之后放弃会很有用。

我通过System.Data.Sqlite使用SQLITE,似乎SqliteCommand.CommandTimeout将是我想要的,但设置这似乎没有任何影响由于某种原因。也许我错过了什么。

1 个答案:

答案 0 :(得分:1)

对于简单的选择查询,不,似乎没有办法在SQLite本身上设置超时或最长执行时间。文档中唯一提到的超时是the busy timeout。因此,如果您需要限制选择查询可以花费的最长时间,则需要在应用程序级别中使用超时包装连接,并在超出超时时取消/关闭连接。如何做到这一点显然是应用程序/语言特定的。

对于忙碌超时(连接停止等待锁定清除之前的超时),您可以通过the provided C interface或通过提供给应用程序的SQLite驱动程序来执行此操作。