Kann BCP kopiert Daten direkt aus der Tabelle auf die Tabelle?
Habe ich eine situation, wo ich kopieren muss mehrere Tabellen aus einer SQL Server-Datenbank auf einem separaten SQL-Server-DB. Die Datenbanken liegen beide auf der gleichen Instanz. Die Tabellen, die ich kopieren enthalten ein minimum von 4,5 Millionen Zeilen und sind über 40GB nach oben in der Größe.
Habe ich verwendet BCP vor, bin aber nicht enorm vertraut und wurden nicht in der Lage zu finden, keine Dokumentation darüber, ob oder nicht, können Sie BCP verwenden, zu kopieren, direkt von Tisch zu Tisch, ohne zu schreiben, um die Datei zwischen.
Ist das möglich? Wenn ja, wie?
EDIT: Der Grund warum wir nicht mit einem einfach EINFÜGEN, weil wir nur über begrenzten Speicherplatz auf dem Protokolllaufwerk auf dem server, die verschwindet fast sofort, wenn Sie versuchen, zu LEGEN. Wir haben versucht, es aber die Abfrage schnell verlangsamte zu Schritttempo als log-Laufwerk gefüllt.
INSERT
?Mehreren Gründen, darunter die Geschwindigkeit der operation und die Menge an Speicherplatz haben wir auf dem log-Fahrt. LEGEN Sie schwillt an, die log-Dateien super schnell und wir laufen aus Speicherplatz auf dem Protokolllaufwerk.
Ich normalerweise nicht diese Art von
INSERT
in Chargen von, sagen wir, 10.000 Zeilen.Wie wirkt sich die Geschwindigkeit der INSERT-operation in der Regel zu vergleichen, um BCP-Datei und dann importieren? So im wesentlichen ausführen der INSERT-mindestens 45-mal (angesichts unseres 4,5 Millionen + Zeilenanzahl), jedes mal schrumpft die log-Dateien nach der Fertigstellung?
BCP-fügt Daten in die Chargen der gleichen Weise, wie Sie mit
INSERT
, und hat die gleiche Art von transation log considersations. Der Unterschied ist, dass BCP müssen körperlich kopieren von Daten aus der Datenbank-server und zurück auf wieder, in der Erwägung, dass mit INSERT
Sie verschieben von Daten innerhalb des Servers.InformationsquelleAutor GShenanigan | 2010-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
BCP ist für dumping zu /Lesen aus einer Datei. Verwenden Sie DTS/SSIS kopieren von einer DB zur anderen.
Hier sind die BCP-docs bei MSDN
InformationsquelleAutor rickythefox
aus meiner Antwort an Table-level-backup
Ich bin mit bcp.exe zu erreichen table-level-backups
export:
importieren:
wie Sie sehen können, können Sie exportieren, basierend auf einer Abfrage, so können Sie auch inkrementelle backups mit diesem.
InformationsquelleAutor kenwarner
SQL Import/Export-Assistenten die Arbeit machen werden ... schließen Sie einfach zweimal auf dieselbe Datenbank (Quelle und Ziel) und kopieren einer Tabelle auf eine andere (leere und indizierte), möchten Sie möglicherweise anweisen, Sie zu ignorieren autonumeric-key-Id-Feld, wenn vorhanden. Dieser Ansatz funktioniert bei mir mit Tabellen über 1M+ Aufzeichnungen.
InformationsquelleAutor Gonzalo