(0) exportieren Drucken
Alle erweitern

Informationen zu Massenimport- und Massenexportvorgängen

Microsoft In SQL Server 2005 wird der Massenexport von Daten aus einer SQL Server-Tabelle und der Massenimport in eine SQL Server-Tabelle oder eine nicht partitionierte Sicht unterstützt. Dazu stehen die folgenden grundlegenden Methoden zur Verfügung.

Methode Beschreibung Importiert Daten Exportiert Daten

Dienstprogramm bcp

Ein Befehlszeilenprogramm (Bcp.exe), mit dem Massenexporte und -importe von Daten ausgeführt und Formatdateien generiert werden können.

Ja

Ja

BULK INSERT-Anweisung

Eine Transact-SQL-Anweisung, mit der Daten direkt aus einer Datendatei in eine Datenbanktabelle oder nicht partitionierte Sicht importiert werden.

Ja

Nein

INSERT ... SELECT * FROM OPENROWSET(BULK...)-Anweisung

Eine Transact-SQL-Anweisung, bei der mit dem OPENROWSET-Massenrowsetanbieter ein Massenimport von Daten in eine SQL Server-Tabelle ausgeführt wird. Dabei wird die Funktion OPENROWSET(BULK…) angegeben, um Daten in einer INSERT-Anweisung auszuwählen.

Ja

Nein

Die BULK INSERT-Anweisung und die Funktion OPENROWSET(BULK) werden im Prozess mit SQL Server ausgeführt. Dabei wird derselbe Arbeitsspeicheradressraum verwendet. Weil die Datendateien durch einen SQL Server-Prozess geöffnet werden, findet kein Kopieren von Daten zwischen Clientprozess und SQL Server-Prozessen statt. Informationen zu Sicherheitsaspekten beim Importieren von Daten mithilfe von BULK INSERT oder INSERT ... SELECT * FROM OPENROWSET(BULK...) finden Sie unter Importieren von Massendaten mithilfe von BULK INSERT oder OPENROWSET(BULK...).

Im Gegensatz dazu wird das Dienstprogramm bcp außerhalb des Prozesses ausgeführt. Zum Verschieben von Daten über Prozessspeicherräume hinweg muss von bcp ein prozessübergreifendes Daten-Marshalling verwendet werden. Als prozessübergreifendes Daten-Marshalling wird der Prozess der Konvertierung von Parametern eines Methodenaufrufs in einen Datenstrom bezeichnet. Dadurch kann die Auslastung des Prozessors signifikant steigen. Da allerdings von bcp die Daten analysiert und Daten in ein systemeigenes Speicherformat im Clientprozess konvertiert werden, kann der SQL Server-Prozess dadurch von der Analyse und der Datenkonvertierung entlastet werden. Wenn die Leistungsfähigkeit der CPU also eingeschränkt ist, kann die Verwendung von bcp auf einem Computer mit mehreren CPUs oder auf verschiedenen Computern für den Massenimport bessere Ergebnisse liefern als die Verwendung von BULK INSERT oder INSERT ... SELECT * FROM OPENROWSET(BULK).

Das Dienstprogramm bcp sowie die Anweisungen BULK INSERT und INSERT ... SELECT * FROM OPENROWSET(BULK...) unterstützen alle die Verwendung einer als Formatdatei bezeichneten speziellen Datei zum Speichern von Formatinformationen für jedes Feld in einer Datendatei. In einer Formatdatei können auch Informationen zu der korrespondierenden SQL Server-Tabelle enthalten sein. Über die Formatdatei können alle Formatinformationen bereitgestellt werden, die für den Massenexport von Daten aus einer Instanz und für den Massenimport von Daten in eine Instanz von SQL Server erforderlich sind.

Formatdateien bieten eine flexible Möglichkeit zum Interpretieren von Daten, wie diese in der Datendatei während des Imports vorhanden sind, und zum Formatieren von Daten in der Datendatei während des Exports. Durch diese Flexibilität besteht nicht mehr die Notwendigkeit, einen speziellen Code für das Interpretieren der Daten zu schreiben oder die Daten für die speziellen Anforderungen von SQL Server oder der externen Anwendung umzuformatieren. Wenn Sie beispielsweise einen Massenexport von Daten ausführen, die in eine Anwendung geladen werden sollen, für die durch Kommas getrennte Werte erforderlich sind, können Sie eine Formatdatei verwenden, um Kommas als Feldabschlusszeichen in den exportierten Daten einzufügen.

SQL Server 2005 unterstützt zwei Arten von Formatdateien: XML-Formatdateien und Nicht-XML-Formatdateien. Nicht-XML-Formatdateien wurden von früheren Versionen von SQL Server unterstützt; XML-Formatdateien sind neu in SQL Server 2005.

Formatdateien können nur mithilfe des Dienstprogramms bcp generiert werden. Weitere Informationen finden Sie unter Erstellen einer Formatdatei. Weitere Informationen zu Formatdateien finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten.

ms187042.note(de-de,SQL.90).gifHinweis:
Wenn keine Formatdatei während eines Massenexport- oder Massenimportvorgangs zur Verfügung steht, kann der Benutzer die Standardformatierung mithilfe der Befehlszeile überschreiben.

Der Massenimport von Daten in eine Instanz von SQL Server erfolgt beim Dienstprogramm bcp und den Anweisungen BULK INSERT und INSERT ... SELECT * FROM OPENROWSET(BULK...) mithilfe des Abfrageprozessors.

Von allen drei Methoden werden die Daten in der Datendatei in OLE DB-Rowsets konvertiert. Die Konvertierungsmethode variiert jedoch wie folgt:

  • Vom Dienstprogramm bcp wird die Datendatei gelesen und ein TDS-Datenstrom an die BCP-API (Bulk Copy Program) in SQL Server gesendet, worauf die Daten in OLE DB-Rowsets konvertiert werden.
  • Mithilfe von BULK INSERT und dem OPENROWSET-Massenrowsetanbieter wird eine Datendatei jeweils direkt in ein OLE DB-Rowset konvertiert.

Die OLE DB-Rowsets werden vom Abfrageprozessor, von dem jeder Vorgang geplant und optimiert wird, in die Zieltabelle eingefügt.

Leistungsaspekte können eine wichtige Rolle spielen, wenn große Datenmengen importiert werden. In einigen Fällen kann die Leistung optimiert werden, indem Sie die Art ändern, wie die folgenden Punkte von Massenimport- oder Massenexportvorgängen behandelt werden:

  • Batchoptionen
  • Einschränkungsüberprüfung von CHECK-Einschränkungen
  • Wie Massentransaktionen protokolliert werden. Dies ist relevant für Datenbanken, für die das vollständige Wiederherstellungsmodell verwendet wird.
  • Sortieren exportierter Daten
  • Paralleler Datenimport
  • Tabellensperrung
  • Triggerausführung

Weitere Informationen finden Sie unter Optimieren der Leistung des Massenimportierens.

ms187042.note(de-de,SQL.90).gifHinweis:
Für Massenexportvorgänge gibt es keine speziellen Optimierungsverfahren. Beim Massenexportvorgang werden einfach mithilfe einer SELECT-Anweisung Daten aus der Quelltabelle ausgewählt.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft