sql >> Database teknologi >  >> NoSQL >> MongoDB

Analyse af langsomme forespørgsler i MongoDB

Vi er glade for at kunne annoncere tilgængeligheden af ​​vores langsomme forespørgselsanalysator til MongoDB! Ved at bruge den langsomme forespørgselsanalysator kan du hurtigt identificere langsomme forespørgsler på enhver af dine servere over en bestemt periode. Som standard er "langsomme forespørgsler" defineret som forespørgsler, der tager længere tid end 100 ms.

Slow Query Heatmap

Varmekortet giver dig et hurtigt visuelt overblik over de langsomme forespørgsler i dit system. Diagrammets lodrette akse er eksponentiel tid. Det betyder, at jo højere boblen er i diagrammet, jo langsommere er forespørgslen (i størrelsesordener) – så hold øje med de bobler, der konsekvent er øverst på dit diagram. Du kan også klikke på en boble for at se detaljerne for den underliggende forespørgsel.

Forespørgsler af samme type har samme farve. Dette giver dig mulighed for nemt at identificere mønstre i dine langsomme forespørgsler. Du kan også vælge dele af grafen for at zoome ind i et bestemt tidsinterval.

For eksempel. I eksemplet ovenfor kan du se en klynge af røde prikker, der tager 10 sekunder+. Du kan også se, at et baggrundsjob, der kører en gang i timen, tager 28 sekunder at udføre. Du kan klikke på datapunktet for at få den faktiske forespørgsel.

Slow Query Data Tabel

Den langsomme forespørgselsdatatabel giver dig en tabeloversigt over alle de langsomme forespørgselsdata. Datatabellerne viser flere vigtige metrics om dine langsomme forespørgsler:

  • Type - Type forespørgsel – forespørgsel, indsæt, opdater, fjern osv.
  • Database og indsamling – Db'en og samlingen af ​​forespørgslen
  • Forespørgsel – Den faktiske forespørgsel med forespørgselsparametrene fjernet
  • Tæl – Antallet af gange, forespørgslen blev kørt i den valgte tidsperiode
  • nScannet – Antallet af scannede poster i indekset + antallet af scannede objekter fra samlingen
  • Varighed(ms) – Den gennemsnitlige udførelsestid for forespørgslen i ms
  • Reponslængde(bytes) – Den gennemsnitlige svarlængde for forespørgslen resulterer i bytes
  • nReturneret - Det gennemsnitlige antal dokumenter, der returneres pr. udførelse af forespørgslen
  • Læselås (mikrosek.) – Den gennemsnitlige læste låsetid i mikrosek.
  • Skrivelås (mikrosek.) – Den gennemsnitlige skrivelåsetid i mikrosek.

Du kan sortere den langsomme forespørgselstabel efter en hvilken som helst af ovenstående kolonner for at opbygge den visning, du har brug for. Forespørgselsdataene kan også downloades til Excel til analyse. Klik på linket "Download data som csv" for at downloade de langsomme forespørgselsdata og lave din tilpassede analyse i Excel.

For nemt at kunne identificere problemforespørgsler tilbyder vi en række indbyggede visninger.

Langsomme forespørgsler sorteret efter "Hyppigste"

Denne visning viser (i faldende rækkefølge) de forespørgsler, der udføres oftest i systemet. Du vil være særlig opmærksom på de øverste forespørgsler på listen. Hvis deres nScanned-værdi er høj, eller varigheden er høj, skal du tilføje det passende indeks for denne forespørgsel. Dette reducerer antallet af dokumenter, der scannes fra disken.

Langsomme forespørgsler sorteret efter "Maksimalt antal dokumenter/indekser scannede"

Denne visning viser (i faldende rækkefølge) de forespørgsler, der scanner flest indeksposter eller flest dokumenter i en samling. En høj 'nScanned'-værdi betyder, at du ikke har et indeks, eller at du ikke har det rigtige indeks. Det er måske ikke muligt at tilføje et indeks for hver forespørgsel i systemet – men du bør sikre dig, at i det mindste dine højfrekvente forespørgsler alle er godt indekseret.

Langsomme forespørgsler sorteret efter "Langsommeste forespørgsel"

Denne visning viser (i faldende rækkefølge) de forespørgsler, der tager den maksimale tid at udføre. Hvis forespørgslen kører meget sjældent, kan du beslutte, om du vil optimere den.

Langsomme forespørgsler sorteret efter "Max Docs Returned"

Denne visning viser (i faldende rækkefølge) de forespørgsler, der giver flest resultater. At returnere mange resultater resulterer ofte i netværksbelastning på systemet. Du bør også sikre dig, at du kun returnerer de felter, du har brug for, fra dokumentet og ikke alle felterne.

Langsomme forespørgsler Sorteret efter "Læselås"

Denne visning viser (i faldende rækkefølge) de forespørgsler, der bruger maksimal læselåsetid i mikrosek. Hvis du bruger WiredTiger-lagringsmotoren, er dette typisk ikke et problem, da WiredTiger anvender dokumentniveaulåsning.

Langsomme forespørgsler sorteret efter "Skrivelås"

Denne visning viser (i faldende rækkefølge) de forespørgsler, der bruger maksimal skrivelåsetid i mikrosek. Hvis du bruger WiredTiger-lagringsmotoren, er dette typisk ikke et problem, da WiredTiger anvender dokumentniveaulåsning.


  1. Mongoose:Schema vs Model?

  2. Hvordan får man alle de værdier, der indeholder en del af en streng, ved hjælp af mongoose find?

  3. Hvordan bruger man forårsdata mongo @CompoundIndex med undersamlinger?

  4. indsætMange Håndter Duplikatfejl