【发布时间】:2014-11-27 17:01:35
【问题描述】:
我使用的是 RavenDB 2.0.3.0 版。附加调试器后,涉及 RavenDB 的所有内容都运行得非常缓慢。每个查询都需要几秒钟才能完成。
如果我在调试器刚刚坐在那里时按暂停,我总是会看到它挂起并显示以下调用跟踪:
Lucene.Net.dll!Lucene.Net.QueryParsers.FastCharStream.Refill() 第 91 行 C# Lucene.Net.dll!Lucene.Net.QueryParsers.FastCharStream.ReadChar() 第 53 行 C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParserTokenManager.JjMoveNfa_3(int startState, int curPos) 第 604 行 + 0x1b 字节 C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParserTokenManager.JjMoveStringLiteralDfa0_3() 第 94 行 + 0xd 字节 C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParserTokenManager.GetNextToken() 第 1379 行 + 0x9 字节 C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.Jj_ntk() 第 1929 行 + 0x1d 字节 C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.Clause(string field) Line 1373 + 0x1d bytes C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.Query(string field) Line 1301 + 0xc bytes C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.TopLevelQuery(string field) Line 1287 + 0xc bytes C# Lucene.Net.dll!Lucene.Net.QueryParsers.QueryParser.Parse(string query) Line 223 + 0xf bytes C# Raven.Database.dll!Raven.Database.Indexing.QueryBuilder.BuildQuery(字符串查询,Raven.Abstractions.Data.IndexQuery indexQuery,Raven.Database.Indexing.RavenPerFieldAnalyzerWrapper 分析器)第 56 行 + 0xe 字节 C# Raven.Database.dll!Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery(string query, Raven.Abstractions.Data.IndexQuery indexQuery) Line 1120 + 0x1d bytes C# Raven.Database.dll!Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery() 第 1081 行 + 0x28 字节 C# Raven.Database.dll!Raven.Database.Indexing.Index.IndexQueryOperation.Query() 第 803 行 + 0x26 字节 C# [外部代码] Raven.Database.dll!Raven.Database.DocumentDatabase.Query.AnonymousMethod__8e(Raven.Database.Storage.IStorageActionsAccessor actions) Line 1220 + 0x145 bytes C# Raven.Database.dll!Raven.Database.DocumentDatabase.Query(字符串索引,Raven.Abstractions.Data.IndexQuery 查询)第 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) Line 82 + 0x32b bytes C# Raven.Database.dll!Raven.Database.Queries.DynamicQueryRunner.ExecuteDynamicQuery(string entityName, Raven.Abstractions.Data.IndexQuery query) Line 49 + 0x15 bytes C# Raven.Database.dll!Raven.Database.Queries.DynamicQueryExtensions.ExecuteDynamicQuery(Raven.Database.DocumentDatabase self, string entityName, Raven.Abstractions.Data.IndexQuery indexQuery) 第 19 行 + 0x11 字节 C# Raven.Client.Embedded.dll!Raven.Client.Embedded.EmbeddedDatabaseCommands.Query(string index, Raven.Abstractions.Data.IndexQuery query, string[] includes, bool metadataOnly, bool indexEntriesOnly) Line 389 + 0x47 bytes C# Raven.Client.Lightweight.dll!Raven.Client.Document.AbstractDocumentQuery>.ExecuteActualQuery() 第 535 行 + 0x50 字节 C# Raven.Client.Lightweight.dll!Raven.Client.Document.AbstractDocumentQuery>.InitSync() 第 518 行 C# Raven.Client.Lightweight.dll!Raven.Client.Document.AbstractDocumentQuery>.QueryResult.get() 第 505 行 C# Raven.Client.Lightweight.dll!Raven.Client.Linq.RavenQueryProviderProcessor.ExecuteQuery() 第 1425 行 + 0x1b 字节 C# Raven.Client.Lightweight.dll!Raven.Client.Linq.RavenQueryProviderProcessor.Execute(System.Linq.Expressions.Expression 表达式) 第 1398 行 + 0x3d 字节 C#
如果我在没有附加调试器的情况下运行,一切都运行良好且快速......我在昨天之前从未遇到过这个问题。
我正在使用带有 DataDir=~\App_Data\RavenDB 的 EmbeddableDocumentStore。
我尝试删除 RavenDB 目录,但即使使用全新的数据库,Raven 仍然很慢。
知道出了什么问题或如何排除故障吗?
【问题讨论】:
标签: ravendb