DBAtlas · Atlas für Datenbankbetrieb

Abfrageplan mit echten Ausführungsstatistiken untersuchen (explain executionStats)

MongoDBPerformance

Befehl

db.musteri.find({ sehir: "Ankara", durum: "aktif" }).sort({ kayitTarihi: -1 }).explain("executionStats")
// Summary: winning plan, returned documents, examined keys/documents and time
const e = db.musteri.find({ sehir: "Ankara", durum: "aktif" }).sort({ kayitTarihi: -1 }).explain("executionStats");
({ plan: e.queryPlanner.winningPlan, n: e.executionStats.nReturned, keys: e.executionStats.totalKeysExamined, docs: e.executionStats.totalDocsExamined, ms: e.executionStats.executionTimeMillis })
// For an aggregation:
db.musteri.explain("executionStats").aggregate([{ $match: { sehir: "Ankara" } }, { $group: { _id: "$durum", n: { $sum: 1 } } }])

Was es tut

Führt die Abfrage aus und zeigt den gewählten Plan (IXSCAN/COLLSCAN, SORT-Stage), die Anzahl der zurückgegebenen Dokumente, der untersuchten Indexschlüssel und Dokumente sowie die benötigte Zeit.

Wann einsetzen

Beim Analysieren einer Abfrage, die im Profiler oder Log langsam erscheint, und um zu prüfen, ob ein neuer Index tatsächlich genutzt wird.

Vorsicht

executionStats führt die Abfrage wirklich aus; auch ein explain einer schweren Abfrage zur Spitzenzeit erzeugt Last. Bei Schreibbefehlen (update/delete/findAndModify) ändert explain keine Daten, führt aber den Plan aus. Ein hohes Verhältnis totalDocsExamined/nReturned oder eine In-Memory-SORT-Stage im Plan bedeutet, dass der Index nicht passt.

In DBAtlas öffnen →

Verwandte Einträge