¿Existe una herramienta equivalente como sql profiler para mongodb?

Me gustaría saber si existe una herramienta equivalente como sql profiler para mongodb. Específicamente, me gustaría ver qué consultas monogdb se generan y se ejecutan desde mi código.

Entonces, cuando tengo un código como:

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

Me gustaría saber qué consulta mongodb real se está generando y ejecutando para ayudar a optimizar mi código cuando consulta la base de datos.

preguntado el 22 de mayo de 12 a las 18:05

1 Respuestas

MongoDB incluye un perfilador simple. Mira aquí: http://www.mongodb.org/display/DOCS/Database+Profiler

Si establece el nivel de creación de perfiles en 2, todas las consultas se escribirán en la colección "system.profiler" para que pueda echar un vistazo. Si establece el nivel de generación de perfiles en 1, solo se escribirán las consultas lentas (de forma predeterminada, se definen como consultas más lentas que 100 ms, pero este es un parámetro configurable).

Para diagnosticar consultas lentas, la funcionalidad "explicar" también es muy útil. Mira aquí http://www.mongodb.org/display/DOCS/Explain

Una vez que sepa qué consultas son lentas, puede usar la explicación para averiguar qué índice está usando (o no) la base de datos.

contestado el 22 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.