Ich machte ein Benchmarking, also hatte ich eine SQL-Datenbank mit 2500 Datensätzen. Ich habe diese Datensätze in DocumentDB eingefügt.Ist DocumentDB langsamer als SQL, wenn viele Datensätze abgerufen werden?
Ich schrieb zwei Zeilen Code, einen mit Entity-Framework, um alle 2500 in ein Array in C# zu ziehen. Die nächste Zeile, um alle 2500 in ein Array von DocuementDB zu ziehen.
-Code verwendet:
var test= await Task<Test>.Run(() =>
client.CreateDocumentQuery<Test>(collection.DocumentsLink)
.ToList());
Das DocumentDB Beispiel dauerte mehr als 20 Sekunden. Die SQL Server-Zeile war fast sofort verfügbar. Die Objekte sind einfache DTO mit 5 Eigenschaften, und ich habe die SQL-Abfrage über das Internet gemacht.
Verwende ich DocumentDB? Ich dachte, es wurde gemacht, um alle deine Aufzeichnungen in den Speicher zu ziehen und dann mit linq zu verbinden.
Probieren Sie die gleiche Sache w/Azure Table Storage - Fast sofortige Ergebnisse. – bladefist
Finden Sie heraus, wo die Zeit verbracht wird. Profiliere den Prozess. Könnte Netzwerk Roundtrips sein. Verwenden Sie Fiddler, um zu sehen, wie viele Anfragen ausgegeben werden. – usr
Beachten Sie, dass es nicht wirklich anwendbar ist, ein RDBMS mit nichtrelationalen zu vergleichen. Sie dienen zum Speichern verschiedener Arten von Datenmodellen. Wenn Sie einen genaueren Vergleich wünschen, benötigen Sie ein Rich-Objekt-Diagramm, für das Sie EntityFramework verwenden, und ein einzelnes .NET-Objekt benötigt 3-10 Tabellen zum Speichern (mehrere Joins, Subselects usw.). Sie möchten das gesamte Objekt mit EF geladen werden. Diese genau gleichen Objekte können direkt in DocumentDB gespeichert werden. Dann möchten Sie die Leistung von 'Foos.ToList()' –