2017-10-20 1 views
0

Ich verwende einen WCF-Dienst mit einer ASP.NET MVC 5-Anwendung. Ich habe eine Schnittstelle, wo Benutzer eine CSV-Datei hochladen kann, die mehr als 100000 Datensätze enthält. Ich lade diese Datei auf den Server hoch und in der Datenschicht verarbeite ich diese 100000 Datensätze nacheinander und speichere sie in der Datenbank.Datei-Upload von mehr als 10000 Datensätze in SQL Server mit WCF-Dienst

Der WCF-Clientdienst ruft diesen Datenbankaufruf in der Datenzugriffsebene auf. Sobald die Speicherung abgeschlossen ist, gibt der WCF-Dienst eine Erfolgsmeldung an den Controller zurück.

Dies funktioniert gut, aber es dauert mehr als 20 Minuten, um rund 100000 Datensätze zu verarbeiten.

Kann mir jemand sagen, was die beste Lösung sein wird, um diesen Prozess in kürzerer Zeit zu beenden.

Dank Tarak

Antwort

1

Anstatt einzelne INSERT Aussagen, sollten Sie sofort alle Zeilen einfügen mit SqlBulkCopy oder eine table-valued parameter (TVP). Dadurch wird die Latenz von separaten Aufrufen und synchronen Commits für jede der leistungsstärkeren traditionellen Einfügungen um Größenordnungen eliminiert.

Verwandte Themen