Raven.Server 启动并绑定到端口 8022。我通过以下方式初始化 DataStore:
var store = new DocumentStore() { Url = "http://localhost:8022" };
store.Initialize();
然后我正在做这样的查询:
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;
}
并且watch.ElapsedMilliseconds
总是 ~550 毫秒。但是当我查看 RavenDB 控制台时,我看到查询在 3 毫秒内处理完毕:
Request # 170: GET - 3 ms - 200 - /indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128
因此,大约 99.5% 的时间没有花在 RavenDB 上。问题是什么?(乌鸦数据库 147)
当我切换到 RavenDB 的自托管(即作为嵌入式客户端)时,一切正常(~3ms)。
为了澄清不在网络、http 调试器、dns 服务器等中的问题,我还对此进行了测试:
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
快速地。但是切换到 Raven.Client.Lightweight 会增加 200 倍的响应时间(550-600 毫秒)