Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Schnellste Möglichkeit, Excel-Tabellendaten nach SQL 2008R2 zu übertragen

Es gibt keinen einzigen schnellsten Weg, da dieser von einer Reihe von Faktoren abhängt. Stellen Sie sicher, dass die Indizes in SQL konfiguriert und optimiert sind. Viele Indizes beeinträchtigen die Einfüge-/Aktualisierungsleistung, da jede Einfügung den Index aktualisieren muss. Stellen Sie sicher, dass Sie nur eine Verbindung zur Datenbank herstellen und diese während des Vorgangs nicht öffnen/schließen. Führen Sie das Update aus, wenn der Server nur minimal ausgelastet ist. Die einzige andere Methode, die Sie noch nicht ausprobiert haben, besteht darin, ein ADO-Command-Objekt zu verwenden und eine direkte INSERT-Anweisung abzusetzen. Stellen Sie bei Verwendung der Methode „AddNew“ des Recordset-Objekts sicher, dass Sie am Ende der Einfügungen nur einen „UpdateBatch“-Befehl ausgeben. Abgesehen davon kann der VBA nur so schnell laufen, wie der SQL-Server die Eingaben akzeptiert.

EDIT:Scheint, als hättest du alles versucht. Es gibt in SQL Server auch den sogenannten „Bulk-Logged“-Wiederherstellungsmodus, der den Aufwand für das Schreiben in das Transaktionsprotokoll so stark reduziert. Könnte etwas sein, das es wert ist, untersucht zu werden. Es kann lästig sein, da es ein wenig mit dem Datenbank-Wiederherstellungsmodell herumfummeln muss, aber es könnte für Sie nützlich sein.