【发布时间】:2014-02-11 16:17:01
【问题描述】:
我读到删除操作很慢,我想知道如何改进此检查。
我有一张表,每天有 10-15k 行填充,每次启动时我都需要清理 6 个月以上的所有记录,但是当数据库增长时,我开始遇到速度问题。运行此命令时接近 100 万条记录 - 即使我没有要删除的内容 - 软件也会挂起几分钟......这是不可接受的:
Using cnn as New SqliteConnection(dbConnection)
cnn.Open()
dim cmd as New SQLiteCommand(cnn)
cmd.CommandText = "DELETE FROM tablename WHERE timecolumn < datetime('now', '-6 months')"
rowsUpdated = cmd.ExecuteNonQuery
End Using
即使没有删除记录,这也会导致几分钟的挂起。
我怎样才能更快,更快地做到这一点?
我正在为 WinCe 6 开发 .NET compact framework 3.5
谢谢
【问题讨论】:
-
你应该在这么大的数据库中使用 sqlite 吗?您是否可以考虑转换?
-
嗯,设备功能没有退出......所以我宁愿尽可能不要切换到 SQL。如果我没有机会,我会... Milion 是 SQLITE 的大型数据库吗?老实说,我不这么认为
-
您的“时间列”是否已编入索引?可以加快什么都没有被删除的情况。
-
不,不是安东尼,我要这样做并再次测试。并阅读另一篇文章,谢谢 Alberto
标签: .net database sqlite delete-row sql-delete