2

mongodb 用の sql プロファイラーのような同等のツールがあるかどうかを知りたいです。具体的には、どの 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 に答える