我的Db4o数据库中有7000个对象。
当我检索到所有的对象时,它几乎是瞬间的。当我添加一个where constrain ie Name = "Chris“时,需要6-8秒。
到底怎么回事?
我还看到了一些关于使用Lucene进行搜索类型查询的评论,有没有人有好的链接?
发布于 2010-02-09 05:44:44
有两件事需要检查。
发布于 2010-02-24 09:00:11
这个问题有点老生常谈了,但也许这是有用的:
在使用原生查询时,请尝试在lambda表达式上设置断点。如果实际调用了断点,那么您就有麻烦了,因为优化失败了。要调用lambda,必须实例化每个对象,这是非常昂贵的。
如果优化有效,将分析lambda表达式树,并且不需要实际代码,因此不会触发断点。
另请注意,必须在打开连接之前对字段执行设置索引。
最后,我有一个简单对象的测试用例。当我开始没有查询优化和索引(更糟糕的是,使用的服务器因为我无法提供模型.dlls而被迫使用GenericReflector
)时,对于大约100,000个对象的三条件查询来说,时间太短了。现在,在250万个对象上进行相同的查询需要6秒,所以这真的是一个巨大的收益。
https://stackoverflow.com/questions/2216333
复制相似问题