删除数据文件夹后,我刚刚启动了一个新的 RavenDB 服务器。所以,我有一个空的数据库。我在 LinqPad 中运行了这个查询。第一次用了19秒,第二次用了13秒。为什么这在一个空数据库上会花费这么长时间?
Session.Query<PerformanceMetric>()
.Where(x => x.CreatedTime > new DateTime(2012, 4, 17, 15, 00, 00))
.OrderBy(x => x.ObjectType)
.OrderBy(x => x.CreatedTime)
.Take(1000)
.ToList().Dump();
注意:我第三次和第四次运行查询时,只用了 0.02 秒。是建立索引还是什么?
最佳答案
我最好的猜测是构建索引花费了时间。当你不提前创建索引时,RavenDB 仍然会让你查询随机的东西,它只会为你创建一个索引,如果你使用它足够多,它会保留它。
尝试提前创建索引,看看它是如何工作的。
可以在这里获得更多信息:http://ayende.com/blog/4667/ravens-dynamic-queries
关于performance - 空数据库的 RavenDB 慢查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197531/