2017-04-24 2 views
0

J'essaie d'imprimer les statistiques de requête lors de l'exécution de la requête donnée. Particulièrement, je suis intéressé par l'heure d'exécution sur le serveur en millisecondes. Ci-dessous mon code de référenceRavenDB Query Statistiques de l'exécution du serveur en millisecondes

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}"); 
} 

Mais lors de l'exécution répétée de cette requête, je reçois temps nécessaire pour exécuter la requête sur le serveur en millisecondes comme -1. Je n'arrive pas à comprendre pourquoi cela se passe ainsi. Dois-je attribuer le résultat à une variable longue ou est-il autorisé à imprimer le résultat en tant que tel (stats.DurationMilliseconds). TIA

Répondre

1

La raison la plus probable est que ce soit parce que RavenDB a pu servir la demande à partir du cache client, au lieu d'aller au serveur

+0

Merci Oren! J'ai essayé un prédicat différent que je n'avais pas utilisé dans mes requêtes précédentes et je suis en mesure d'obtenir un résultat valide. Explorer les options du côté client pour désactiver le cache pour les tests. –