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