RavenDB lange Reaktionszeit für die Suche, während wurde sehr schnell auf dem Server verarbeitet
Frage
Raven.Server gestartet und binded auf Port 8022 I initialisieren Datastor auf folgende Weise:
var store = new DocumentStore() { Url = "http://localhost:8022" };
store.Initialize();
Dann solche Abfrage ich mache:
using (var session = store.OpenSession())
{
Stopwatch watch = new Stopwatch();
watch.Start();
var result = session.LuceneQuery<Item>("Raven/DocumentsByEntityName")
.WhereEquals("Tag", "Items")
.ToList();
watch.Stop(); // watch.ElapsedMilliseconds == ~550 ms
return result;
}
Und watch.ElapsedMilliseconds
ist immer ~ 550 ms.
Aber wenn ich zu RavenDB Konsole aussehen sehe ich, dass Abfrage in 3 ms verarbeitet wurde:
Request # 170: GET - 3 ms - 200 - /indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128
So ~ 99,5% der Zeit nicht in RavenDB ausgegeben. Worin besteht das Problem? (RavenDB 147)
Wenn ich wechsle auf Selbst Hosting von RavenDB (das heißt als eingebetteter Client) alles in Ordnung ist (~ 3 ms).
Um dieses Problem nicht in Netzwerk zu klären, http Debugger, DNS-Server usw. i auch diese getestet:
Stopwatch watch = new Stopwatch();
watch.Start();
WebClient client = new WebClient();
var result = client.DownloadString("http://127.0.0.1:8022/indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128");
watch.Stop(); // watch.ElapsedMilliseconds == ~3-10ms
Fast. Aber die Umstellung auf Raven.Client.Lightweight Anstieg Reaktionszeit in dem 200-fache (550-600 ms)
Lösung
Das Problem war wegen Mittelsmann auf meinem Computer - NOD32. Wenn Sie es auch verwenden - deaktivieren Sie die folgenden Kontrollkästchen:
Einstellungen -> Erweiterte Einstellungen -> Viren- und Spyware -> Protokollfilterung -> "Enable Anwendung protocal Content Filtering"
Einfache Sperrung von Antivirus- oder Firewall- nicht Hilfe!
Andere Tipps
Vielleicht Erbsenzählerei und vielleicht auch nur ein typ-o, aber manchmal sind die dümmsten Dinge können uns verrückt machen;
Ihre Aussage: "Raven.Server gestartet und binded zu portieren 8082 Ich initialisieren Datastor auf folgende Weise:."
Ihr Codebeispiel lautet: "Var store = new DocumentStore () {URL = "http: // localhost: 8022 "};"
die Port in Ihrem Titel ist 8082 und die Port in Ihrem Beispiel ist 8022 .
Ich weiß, Ihr typ-o nicht in Ihrem aktuellen Code sein kann, aber es schadet nie zu überprüfen.
'm jus' Sayin
P