2013-04-16 14 views
5

Sto usando RavenDB versione 2.0.3.0. Quando il debugger è collegato, tutto ciò che coinvolge RavenDB è estremamente lento. Ogni query richiede diversi secondi per essere completata.Il debugging con RavenDB è terribilmente lento

Se premo pausa, mentre il debugger è appena seduto lì, vedo sempre appeso con la seguente traccia chiamata:!

Lucene.Net.dll Lucene.Net.QueryParsers.FastCharStream.Refill () Line 91 C# Lucene.Net.dll! Lucene.Net.QueryParsers.FastCharStream.ReadChar() Riga 53 C# Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParserTokenManager.JjMoveNfa_3 (int startState, int curPos) Riga 604 + 0x1b byte C# Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParserTokenManager.JjMoveStringLiteralDfa0_3() Riga 94 + 0xd byte C# Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParserTokenManage r.GetNextToken() Riga 1379 + 0x9 byte C# Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser.Jj_ntk() Riga 1929 + 0x1d byte C# Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser. Clausola (campo stringa) Riga 1373 + 0x1d byte C# Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser.Query (campo stringa) Riga 1301 + 0xc byte C# Lucene.Net.dll! Lucene.Net.QueryParsers. QueryParser.TopLevelQuery (campo stringa) Riga 1287 + 0xc byte C# Lucene.Net.dll! Lucene.Net.QueryParsers.QueryParser.Parse (query stringa) Riga 223 + 0xf byte C# Raven.Database.dll! Raven.Database. Indexing.QueryBuilder.BuildQuery (query stringa, Raven.Abstractions.Data.IndexQuery indexQuery, Raven.Database.Indexing.RavenPerFieldAnalyzerWrapper analyzer) Riga 56 + 0xe byte C# Raven.Database.dll! Raven.Database. Indexing.Index.IndexQueryOperation.GetLuceneQuery (query stringa, Raven.Abstractions.Data.IndexQuery indexQuery) Riga 1120 + 0x1d byte C# Raven.Database.dll! Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery() Riga 1081 + 0x28 byte C# Raven.Database.dll! Raven.Database.Indexing.Index.IndexQueryOperation.Query() Linea 803 + 0x26 byte C# [Codice esterno] Raven.Database.dll! Raven.Database.DocumentDatabase.Query.AnonymousMethod__8e (Raven.Database.Storage.IStorageActionsAccessor azioni) Riga 1220 + 0x145 byte C# Raven.Database.dll! Raven.Database.DocumentDatabase.Query (indice stringa, query Raven.Abstractions.Data.IndexQuery) Riga 1237 C# Raven.Database. dll! Raven.Database.Queries.DynamicQueryRunner.ExecuteActualQuery (Raven.Abstractions.Data.IndexQuery query, Raven.Database.Data.Dynamic MappaQueryMapping, System.Tuple touchTemporaryIndexResult, string realQuery Riga 82 + 0x32b byte C# Raven.Database.dll! Raven.Database.Queries.DynamicQueryRunner.ExecuteDynamicQuery (stringa entityName, Raven.Abstractions.Data.IndexQuery query) Riga 49 + 0x15 byte C# Raven.Database.dll! Raven.Database.Queries.DynamicQueryExtensions.ExecuteDynamicQuery (Raven.Database.DocumentDatabase self, string entityName, Raven.Abstractions.Data.IndexQuery indexQuery) Riga 19 + 0x11 byte C# Raven.Client.Embedded .dll! Raven.Client.Embedded.EmbeddedDatabaseCommands.Query (indice stringa, Raven.Abstractions.Data.IndexQuery query, string [] include, bool metadataOnly, bool indexEntriesOnly) Riga 389 + 0x47 byte C# Raven.Client.Lightweight.dll ! Raven.Client.Document.AbstractDocumentQuery> .ExecuteActualQuery() Riga 535 + 0x50 byte C# Raven.Client.L ightweight.dll! Raven.Client.Document.AbstractDocumentQuery> .InitSync() Riga 518 C# Raven.Client.Lightweight.dll! Raven.Client.Document.AbstractDocumentQuery> .QueryResult.get() Riga 505 C# Raven.Client. Lightweight.dll! Raven.Client.Linq.RavenQueryProviderProcessor.ExecuteQuery() Riga 1425 + 0x1b byte C# Raven.Client.Lightweight.dll! Raven.Client.Linq.RavenQueryProviderProcessor.Execute (System.Linq.Expressions.Expression Expression) Linea 1398 + 0x3D byte C#

Se corro senza il debugger, tutto esegue bene e veloce ... non ho mai incontrato questo problema prima di ieri.

Sto utilizzando un EmbeddableDocumentStore con DataDir = ~ \ App_Data \ RavenDB.

Ho provato a eliminare la directory RavenDB, ma anche con un DB completamente nuovo, Raven è ancora lento.

Qualche idea cosa non va o come posso risolvere?

risposta

1

Se si utilizza IntelliTrace, spegnerlo. Nelle impostazioni delle eccezioni, selezionare Solo il mio codice e non fermarsi sulle eccezioni gestite.

+0

Nessun cambiamento. È letteralmente istantaneo quando è in esecuzione senza il debugger allegato. Non ho impostato nessun punto di interruzione, nessun orologio, nessun Intellitrace e Just My Code attivato ... anche se ciò che è interessante è che quando ho premuto pausa, vedo lo stack completo di chiamate Raven/Lucene nella finestra Stack chiamate ... non solo "Codice esterno" ... non sono sicuro che sia normale – Jeff

0

Abbiamo avuto lo stesso problema per un po 'fino a quando abbiamo scoperto che stavamo creando indici su ogni richiesta (a causa di una registrazione IoC errata del DocumentStore).

Abbiamo assicurato che questa linea è chiamata una volta per ogni applicazione init e la lentezza svanì:

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