DBAtlas · Veritabanı operasyon atlası

Profiler verisinden en yavaş sorguları ve sorgu şekillerini çıkar

MongoDBPerformans

Komut

// Son yavas islemler (profiling acik olan db'de; bkz. set-profiling):
db.system.profile.find({ millis: { $gte: 100 } }, { ts: 1, ns: 1, op: 1, millis: 1, planSummary: 1, keysExamined: 1, docsExamined: 1, nreturned: 1, appName: 1 }).sort({ ts: -1 }).limit(20)
// Sorgu sekline gore toplam sure (zamani en cok harcayanlar):
db.system.profile.aggregate([
  { $group: { _id: { ns: "$ns", plan: "$planSummary", shape: "$queryHash" }, n: { $sum: 1 }, totalMs: { $sum: "$millis" }, maxMs: { $max: "$millis" }, avgDocs: { $avg: "$docsExamined" } } },
  { $sort: { totalMs: -1 } },
  { $limit: 10 }
])
// Index kullanmayan (COLLSCAN) sorgular:
db.system.profile.find({ planSummary: "COLLSCAN" }, { ns: 1, millis: 1, command: 1 }).sort({ millis: -1 }).limit(10)

Ne yapar?

system.profile koleksiyonundaki kayıtlardan son yavaş işlemleri, aynı sorgu şekline (queryHash) göre toplam süreyi ve index kullanmayan COLLSCAN sorgularını listeler.

Ne zaman kullanılır?

Yavaşlık şikâyetinde hangi sorgunun sunucu zamanını harcadığını bulmak ve index ihtiyacını belirlemek için.

Dikkat

system.profile varsayılan 1 MB'lık capped bir koleksiyondur ve db bazındadır; yoğun sistemde kayıtlar dakikalar içinde döner, analizi profiling açıkken veya hemen sonra yap. Profiling seviye 2 veya slowms 0 her işlemi yazar ve ciddi overhead getirir. Kayıtlar yalnızca çalıştığı üyede tutulur, replike edilmez.

DBAtlas'ta aç →

İlgili