RavenDB Query统计服务器执行时间(以毫秒为单位)

时间:2017-04-24 05:46:47

标签: ravendb long-integer milliseconds

我正在尝试在执行给定查询时打印查询统计信息。特别是我对服务器上的执行时间感兴趣,以毫秒为单位属性。以下是我的参考代码

void Main()
{
    var documentStore = DocumentStoreHolder.Store;
    Load_Stats(documentStore);
}

// Define other methods and classes here

public static void Load_Stats(IDocumentStore documentStore)
{


using (var session = documentStore.OpenSession())
{
    RavenQueryStatistics stats;
    IRavenQueryable<Order> recentOrdersQuery = from order in session.Query<Order>().Statistics(out stats) where order.Company=="companies/1" select order;
    List<Order> recentOrders = recentOrdersQuery.Take(3).ToList();
    Console.WriteLine("Index used was: " + stats.IndexName);
    Console.WriteLine($"Other stats : 1. Execution time on the server :  {stats.DurationMilliseconds} 2.Total number of results {stats.TotalResults} 3. The last document ETag {stats.ResultEtag} 4. The timestamp of last document indexed by the index {stats.IndexTimestamp}");
}

但是在重复执行此查询后,我会花时间在服务器上以毫秒为单位运行查询。我不明白为什么会这样。我应该将结果分配给长变量还是允许打印结果(stats.DurationMilliseconds)。 TIA

1 个答案:

答案 0 :(得分:1)

最可能的原因是,这是因为RavenDB能够从客户端缓存提供请求,而不是去服务器