我已经写了这个帖子,因为我已经解决了这个问题整整三天了!
基本上,我有一个程序可以收集一个大的 CSV 文件并将其用作本地 SQLCE 数据库的输入。对于这个 CSV 文件中的每一行(它代表某种对象,我们称之为“狗”),我需要知道这条狗是否已经存在于数据库中。如果它已经存在,请不要将其添加到数据库中。如果不存在,请在数据库中添加一个新行。
问题是,每个查询大约需要 60 毫秒(一开始,当数据库为空时),当数据库大约 1000 行大时,它会上升到大约 80 毫秒。当我必须通过 1000 行(我认为这并不多)时,这大约需要 70000 毫秒 = 1 分 10 秒(只是为了检查数据库是否是最新的),太慢了!考虑到这个数量有一天可能会超过 10000 行,我不能指望我的用户在他的数据库同步之前等待超过 10 分钟。我尝试改用编译后的查询,但这并不能提高性能。
我正在搜索的字段是一个字符串(它是主键),并且它已被索引。
如果有必要,我可以用代码更新这个线程,这样你就可以看到我做了什么。