RavenDB查询<T>总是比加载<T>更快

Mar*_*ark 1 c# asp.net ravendb

在RavenDB站点上,它显示"当您知道文档ID时使用加载查询".在我对大约1,500个对象的简单集合的测试中,Load总是较慢.为什么?

加载:

var doc = session.Load<Document>("Documents/123");
Run Code Online (Sandbox Code Playgroud)

询问

var doc = session.Query<Document>().Where(x => x.Id == "123").SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

在测试中,检索每个文档,平均查询时间为66毫秒,而负载为137.RavenDB实例位于另一个办公室,因此时间很长.无论加载不总是更快?

编辑

这是我所说的http://ravendb.net/kb/31/my-10-tips-and-tricks-with-ravendb.提示#4.这是错的吗?

Lee*_*e F 5

根据我的理解,Load将保证返回结果(假设数据库中存在id),而如果索引尚未更新,Query可能不会返回结果.

你可以有一个场景,你插入一个记录,然后在下一行尝试使用Query检索相同的记录,然后没有得到任何回报.在此方案中,Load将返回记录.

所以我猜你看到的性能下降可能与你在使用Query时通过索引查询这一事实有关,而Load正在击中实际的数据存储.