1

我制作了一个应用程序,可以在其中使用 RavenDB 查询数据库。我只在我的本地机器上使用它,所以我想从 Raven.Server 更改为 Embedded 客户端。但是我注意到使用嵌入式客户端时我的查询时间太长了。

私有静态 EmbeddableDocumentStore 文档存储 { 获取;放; }

    public static void Connect()
    {
        documentStore = new EmbeddableDocumentStore() {/* Url = "http://" + Properties.Settings.Default.DatabaseHost + ":" + Properties.Settings.Default.DatabasePort */ DataDirectory = "Data"};
        documentStore.Initialize();
        IndexCreation.CreateIndexes(typeof(eBayItemIndexer).Assembly, documentStore);
        IndexCreation.CreateIndexes(typeof(RemoveIndexer).Assembly, documentStore);
    }

这是为了连接到数据库。这是我执行查询的方式:

session.Advanced.DocumentStore.DatabaseCommands.Query("eBayItemIndexer", new Raven.Abstractions.Data.IndexQuery() { Query = RawQuery }, new string[] { "Id" });

现在,如果我使用 EmbeddedDocumentStore,我的查询时间是:~300 毫秒。如果我使用 DocumentStore 并连接到本地服务器,我的查询时间是:4 - 10 毫秒。

我认为嵌入式客户端更快?我是不是做错了什么,因为 300 毫秒的查询时间太长了。

4

2 回答 2

0

好吧,对我来说,这似乎只是我在 Visual Studio 中调试时出现的问题,但如果我从 .exe 运行程序,查询时间就可以了。

于 2013-06-08T12:01:22.790 回答
0

让服务器为您管理一切可能不会让您受益。特别是,如果它是临时索引,则必须重新创建索引。

于 2013-05-29T17:30:54.980 回答