Debugging with RavenDB is awfully slow

I am using RavenDB version 2.0.3.0. When the debugger is connected, everything related to RavenDB is terribly slow. Each request takes several seconds.

If I pause while the debugger just sits there, I always see that it hangs with the following call trace:

Lucene.Net.dll! Lucene.Net.QueryParsers.FastCharStream.Refill () Line 91 C # Lucene.Net.dll! Lucene.Net.QueryParsers.FastCharStream.ReadChar () Line 53 C # Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParserTokenManager.JjMoveNfa_3 (int startState, int curPos) String 604 + 0x1b bytes C # Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParserTokenManager.JjMoveStringLiteralDfa0_3 () Line 94 + 0xd bytes of C # Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParserTokenManager.GetNextToken () Line 1379 + 0x9 bytes C # Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser.Jj_ntk () String 1929 + 0x1d bytes C # Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser.Clause (string field) String 1373 + 0x1d bytes C # Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser.Query (string field) String 1301 + 0xc bytes C # Lucene.Net.dll! LuceneNet.QueryParsers.QueryParser.TopLevelQuery (string field) String 1287 + 0xc bytes C # Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser.Parse (string query) String 223 + 0xf bytes C # Raven.Database.dll! Raven.Database.Indexing.QueryBuilder.BuildQuery (string query, Raven.Abstractions.Data.IndexQuery indexQuery, Raven.Database.Indexing.RavenPerFieldAnalyzer Server Analyzer) String 56 + 0xe bytes C # Raven.Database.dll! Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery (string query, Raven.Abstractions.Data.IndexQuery indexQuery) String 1120 + 0x1d bytes C # Raven.Database.dll! Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery () String 1081 + 0x28 bytes C # Raven.Database.dll! Raven.Database.Indexing.Index.IndexQueryOperation.Query () Line 803 + 0x26 bytes C # [External code] Raven.Database.dll! Raven.Database.DocumentDatabase.Query.AnonymousMethod__8e (actions Raven.Database.Storage.IStorageActionsAccessor) String 1220 + 0x145 bytes C # Raven.Database.dll! Raven.Database.DocumentDatabase.Query (string index, query Raven.Abstractions.Data.IndexQuery) String 1237 C # Raven.Database.dll! Raven.Database.Queries.DynamicQueryRunner.ExecuteActualQuery (Raven.Abstractions.Data.IndexQuery query, Raven.Database.Data.DynamicQueryMapping map, System.Tuple touchTemporaryIndexResult, string realQuery) String 82 + 0x32b bytes C # Raven.D Raven.Database.Queries.DynamicQueryRunner.ExecuteDynamicQuery (string entityName, Raven.Abstractions.Data.IndexQuery query) String 49 + 0x15 bytes C # Raven.Database.dll! Raven.Database.Queries.DynamicQueryExtensions.ExecuteDynamicQuery (Raven.Database.DocumentDatabase self,string entityName, Raven.Abstractions.Data.IndexQuery indexQuery) String 19 + 0x11 bytes C # Raven.Client.Embedded.dll! Raven.Client.Embedded.EmbeddedDatabaseCommands.Query (string index, Raven.Abstractions.Data.IndexQuery query, string [] includes, bool metadataOnly, bool indexEntriesOnly) String 389 + 0x47 bytes C # Raven.Client.Lightweight.dll! Raven.Client.Document.AbstractDocumentQuery> .ExecuteActualQuery () Line 535 + 0x50 bytes C # Raven.Client.Lightweight.dll! Raven.Client.Document.AbstractDocumentQuery> .InitSync () Line 518 C # Raven.Client.Lightweight.dll! Raven.Client.Document.AbstractDocumentQuery> .QueryResult.get () Line 505 C # Raven.Client.Lightweight.dll! Raven.Client.Linq.RavenQueryProviderProcessor.ExecuteQuery () String 1425 + 0x1b bytes C # Raven.Client.Lightweight.dll! Raven.Client.Linq.RavenQueryProviderProcessor.Execute (expression System.Linq.Expressions.Expression) String 1398 + 0x3d bytes C #

, ... .

EmbeddableDocumentStore DataDir = ~\App_Data\RavenDB.

RavenDB, DB, Raven .

, ?

+5
2

IntelliTrace, . " " .

+1

, , (- IOC Documentore).

We guaranteed that this line is called once for each init application and the slowness has disappeared:

IndexCreation.CreateIndexes(typeof(MyIndex).Assembly, store);
0
source

All Articles