2017-09-23 2 views
0

Ich Abrufen von Dokumenten aus einer Mongo-Datenbank und kopieren sie in internen Speicher. Ich finde es dauert mehr als ein paar Sekunden, um einhundert dieser Dokumente abzurufen und zu speichern. Kann ich etwas tun, um die Leistung zu verbessern? Einige Sammlungen haben mehr als 1000 Dokumente. Hier ist was ich habe (geschrieben in vb.net)Wie verbessert Mongo Dokumentwiederherstellung Leistung

' get the documents from collection "reqitems" and put them in "collection" 
Dim collection As IFindFluent(Of BsonDocument, BsonDocument) = _ 
          reqitems.Find(Builders(Of BsonDocument).Filter.Empty) 
ReDim model.ReqItems(TotalCollection.ToList.Count) ' storage for the processed documents 
For Each item As BsonDocument In TotalCollection.ToList() 
    ' note: given a string a=x, "GetRHS" returns x 
    Dim parentuid As String = GetRHS(item.GetElement("parentuid").ToString) 
    Dim nodename As String = GetRHS(item.GetElement("nodename").ToString) 
    ' .... about a dozen of these elements 
    ' .... process the elements and copy them to locations in model.ReqItems 
next 

Antwort

0

Das Hinzufügen von Indizes hat nicht wirklich geholfen. Es verlangsamt den Zugriff auf die Elemente im Dokument einzeln (GetRHS im geposteten Code). Also, als Fix, konvertierte ich das Dokument in eine Zeichenfolge, dann analysieren Sie die Zeichenfolge für Schlüsselwort-Wert-Paar. Hoffentlich kann das, was ich gefunden habe, jemandem mit dem gleichen Problem helfen

Verwandte Themen