2

我想知道是否有类似 sql profiler for mongodb 的等效工具。具体来说,我想看看正在生成哪些 monogdb 查询并从我的代码中运行。

所以,当我有如下代码时:

    var Logs = MvcApplication.MongoLoggingDatabase.GetCollection<Log>("Log")
                .Find(queryDocument)
                .Select(x => new LogDto { ModelNumber = x.Request.ModelNumber, Make = x.Request.Make, TimeStamp = x.TimeStamp, UserId = x.UserId })
                .OrderByDescending(x => x.TimeStamp)
                .Skip(pageSize * (page - 1))
                .Take(pageSize);

我想知道正在生成和运行什么实际的 mongodb 查询,以便在查询数据库时帮助优化我的代码。

4

1 回答 1

3

MongoDB 包含一个简单的分析器。见这里: http ://www.mongodb.org/display/DOCS/Database+Profiler

如果您将分析级别设置为 2,则所有查询都将写入“system.profiler”集合,以便您查看。如果将分析级别设置为 1,则只会写入慢速查询(默认情况下,这些查询被定义为慢于 100 毫秒的查询,但这是一个可配置的参数)。

对于诊断慢查询,“解释”功能也很有帮助。见这里 http://www.mongodb.org/display/DOCS/Explain

如果您知道哪些查询很慢,您可以使用 explain 来确定数据库正在使用(或不使用)哪个索引。

于 2012-05-22T18:10:59.410 回答