Schnellste Möglichkeit, Zeilen in sql server zu massen

8

Über einen Web-Service senden Remote-Computer eine Reihe von Zeilen zum Einfügen in unseren zentralen SQL-Server.

Was ist der beste Weg, um diese Zeilen einzufügen? Es kann irgendwo zwischen 50-500 Reihen sein, um jedes Mal einzufügen.

Ich weiß, dass ich die Daten als XML einfüge oder formatiere, die sie auf diese Weise einfügen, aber ich habe dies noch nie zuvor in einer Unternehmenseinstellung getan.

Aktualisierungen Verwenden von Webdiensten (oder vielleicht noch nicht sicher) und SQL Server 2008-Standard.

    
bigint 13.03.2009, 13:33
quelle

5 Antworten

5

Wenn Sie nicht auf einem 10 Jahre alten Computer laufen, sind 50-500 Zeilen nicht sehr viele; Sie könnten buchstäblich SQL-Anweisungen senden und diese direkt in die Datenbank leiten und eine großartige Leistung erzielen. Angenommen, Sie vertrauen den Diensten, die Ihnen Daten senden, natürlich: -)

Wenn Leistung wirklich ein Problem ist, ist das Senden über eine bcp-Datei absolut der schnellste Weg, um Daten in der Datenbank zu blockieren. Es klingt nach deiner Frage, dass du schon weißt, wie man das macht.

    
Chris Winters 13.03.2009 13:36
quelle
4

Nur 50-500 Datensätze sind kein "Masseneinsatz". Der Bulk-Insert-Mechanismus ist für einen wirklich massiven Datenimport ausgelegt, der sofort mit einem Backup fortgesetzt werden soll.

Im Web-Service würde ich einfach die XML in SQL Server übergeben. Die Details wären versionsabhängig.

    
AnthonyWJones 13.03.2009 13:38
quelle
3

Welche Art von Web-Service ist das?

Wenn es .Net ist, ist es normalerweise am besten, die Eingabe in eine DataTable zu laden und dann mit dem SqlBulkCopy Klasse

    
John 13.03.2009 13:36
quelle
2

50-500 Zeilen sollten kein Problem sein! Es ist keine Leistungsoptimierung erforderlich! Führen Sie in Ihrer Anwendung normale (vorbereitete) SQL-Anweisungen aus.

Töte es nicht mit Komplexität und Overengineering.

Wenn Sie mehr als 250.000 Zeilen einfügen sollten, sollten Sie über Skalierung nachdenken!

Wende die Beschränkungen nicht an, du könntest den DB töten.

    
Martin K. 13.03.2009 13:37
quelle
2

Um alle anderen Antworten zu wiederholen, sind 500 Zeilen kein Problem für SQL Server. Wenn Sie eine große Anzahl von Datensätzen einfügen müssen, ist der schnellste Weg mit einem integrierten gespeicherten Prozess namens BulkInsert,

BulkInsert

(I Believe) ist ein Einstiegspunkt für ein speziell dafür entwickeltes SQL Server-Dienstprogramm namens bcp.exe

bcp

    
Charles Bretana 13.03.2009 13:50
quelle

Tags und Links