Ich habe ein paar große Tabellen (188m und 144m Zeilen) Ich muss aus Ansichten zu füllen, aber jede Ansicht enthält ein paar hundert Millionen Zeilen (zusammenziehen pseudo-dimensional modellierte Daten in eine flache Form). Die Schlüssel auf jeder Tabelle sind über 50 zusammengesetzte Bytes von Spalten. Wenn die Daten in Tabellen wären, könnte ich immer daran denken, sp_rename zu verwenden, um die andere neue Tabelle zu erstellen, aber das ist nicht wirklich eine Option.Batch-Commit bei großer INSERT-Operation in nativem SQL?
Wenn ich eine einzelne INSERT-Operation, verwendet der Prozess eine große Menge an Transaktionsprotokoll Speicherplatz, typischerweise feilte es und eine Menge Ärger mit den DBAs. (Und ja, das ist wahrscheinlich ein Job, den die Datenbankadministratoren handhaben/entwerfen/entwerfen sollten)
Ich kann SSIS verwenden und die Daten mit Batch-Commits in die Zieltabelle streamen (aber dazu müssen die Daten über das Netzwerk übertragen werden) , da wir keine SSIS-Pakete auf dem Server ausführen dürfen).
Irgendwelche anderen Dinge als den Prozess in mehrere INSERT-Operationen unter Verwendung einer Art Schlüssel aufzuteilen, um die Zeilen in verschiedene Stapel zu verteilen und eine Schleife zu machen?
Wenn Tabellenpartitionierung eine Option ist, können Sie die Einfügungen durch den Paritionswert teilen. Könnte es schneller machen, die resultierenden Teilmengen zusammenzufassen. –