2013-05-29 6 views
1

Я создал приложение, в котором я бы запросил базу данных с RavenDB. Я использую его только на своей локальной машине, поэтому я хочу перейти от Raven.Server к встроенному клиенту. Но я заметил мое время запроса, которое я так высоко использовал при использовании встроенного клиента.Embeded RavenDB vs. Raven.Server

приватный статический Встраиваемый документ ДокументУстройство магазинаStore {get; задавать; }

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

Это для связи с к БД. А вот как я exectute мой запрос:

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

Теперь, если я использую EmbeddedDocumentStore мое время запроса является: ~ 300 мс. Если я использую DocumentStore и подключаюсь к локальному серверу, мое время запроса: 4 - 10 мс.

Я думаю, что встроенный клиент быстрее? Я делаю что-то неправильно, потому что время запроса 300 мс является высоким.

ответ

0

Возможно, вы не получаете выгоду от того, что сервер управляет всем для вас. В частности, вам нужно воссоздать индекс, если это временный индекс.

+0

Но я создал свой постоянный индекс (in void Connect()) – Svexo

0

Ну, для меня кажется, что это только проблема, пока я отлаживаю в Visual Studio, но если я запустил программу из .exe, времена запроса в порядке.