Próbuję wydrukować statystyki zapytań po wykonaniu danego zapytania. Szczególnie interesuje mnie czas wykonania na serwerze w ciągu milisekund. Poniżej znajduje się mój kod referencyjny
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}");
}
Ale po wielokrotnym wykonaniu tego zapytania otrzymujęczas potrzebny na uruchomienie zapytania na serwerze w milisekundach jako -1. Nie rozumiem, dlaczego tak się dzieje. Czy powinienem przypisać wynik do długiej zmiennej, czy też można wydrukować wynik jako taki (stats.DurationMilliseconds). TIA
Odpowiedzi:
1 dla odpowiedzi № 1Najbardziej prawdopodobną przyczyną jest to, że RavenDB był w stanie obsłużyć żądanie z pamięci podręcznej klienta, zamiast iść na serwer