Optimieren der Leistung des Massenimportierens

Aktualisiert: 12. Dezember 2006

In diesem Thema werden Optionen zum Optimieren des Massenimports von Daten in eine Tabelle in Microsoft SQL Server 2005 mithilfe eines bcp-Befehls, einer BULK INSERT-Anweisung oder einer INSERT ... SELECT * FROM OPENROWSET(BULK...)-Anweisung beschrieben. Um Daten so schnell wie möglich zu massenimportieren oder -exportieren, müssen Sie die Faktoren, die sich auf die Leistung auswirken, und die verfügbaren Befehlsqualifizierer zum Verwalten der Leistung kennen. Verwenden Sie nach Möglichkeit eine Transact-SQL-Anweisung zum Massenimportieren von Daten in SQL Server, weil Transact-SQL schneller ist als bcp.

ms190421.note(de-de,SQL.90).gifHinweis:
Einen Vergleich dieser Methoden finden Sie unter Informationen zu Massenimport- und Massenexportvorgängen.

Wie die Leistung eines Massenimportvorgangs am besten gesteigert wird, hängt von den folgenden Faktoren ab:

  • Ob die Tabelle Einschränkungen und/oder Trigger aufweist.
  • Das von der Datenbank verwendete Wiederherstellungsmodell.
    Weitere Informationen finden Sie unter Übersicht über die Wiederherstellungsmodelle.
  • Ob die Tabelle, in die Daten kopiert werden, leer ist.
  • Ob die Tabelle Indizes aufweist.
  • Ob TABLOCK angegeben ist.
  • Ob die Daten von einem einzigen Client oder parallel von mehreren Clients kopiert werden.
  • Ob die Daten zwischen zwei Computern, auf denen SQL Server ausgeführt wird, kopiert werden sollen.
ms190421.note(de-de,SQL.90).gifWichtig:
In SQL Server 2005 sind Massenimportoptimierungen verfügbar, wenn Trigger aktiviert sind. In SQL Server 2005 wird für Trigger die Zeilenversionsverwaltung verwendet, und die Zeilenversionen werden im Versionsspeicher in tempdb gespeichert. Bevor Sie einen Massenimport eines großen Batches von Datensätzen mithilfe von Triggern ausführen können, müssen Sie gegebenenfalls die Größe von tempdb erweitern, um der Auswirkung der Trigger auf den Versionsspeicher gerecht zu werden.

Informationen zu den Auswirkungen dieser Faktoren auf Massenimportszenarien finden Sie unter Richtlinien zur Optimierung von Massenimport.

Methoden zum Optimieren des Massenimports

Zum Beschleunigen des Massenimports von Daten sind in SQL Server die folgenden Methoden verfügbar:

  • Verwenden minimaler Protokollierung
    Beim einfachen Wiederherstellungsmodell werden die meisten Massenvorgänge nur minimal protokolliert.
    Für eine Datenbank, bei der das vollständige Wiederherstellungsmodell verwendet wird, werden alle beim Massenimport ausgeführten Vorgänge für das Einfügen von Zeilen vollständig im Transaktionsprotokoll protokolliert. Bei umfangreichen Datenimporten kann dies dazu führen, dass das Transaktionsprotokoll schnell aufgefüllt wird. Für Massenimportvorgänge ist die minimale Protokollierung effizienter als die vollständige Protokollierung und reduziert die Möglichkeit, dass ein Massenimportvorgang den Protokollspeicherplatz auffüllt. Damit ein Massenimportvorgang für eine Datenbank, bei der normalerweise das vollständige Wiederherstellungsmodell verwendet wird, minimal protokolliert wird, können Sie die Datenbank zuerst auf das massenprotokollierte Wiederherstellungsmodell umschalten. Nach dem Massenimport der Daten schalten Sie das Wiederherstellungsmodell wieder auf das vollständige Wiederherstellungsmodell um. Weitere Informationen finden Sie unter Überlegungen zum Wechseln zwischen vollständigem und massenprotokolliertem Wiederherstellungsmodell.
    ms190421.note(de-de,SQL.90).gifHinweis:
    Eingefügte Zeilen werden minimal protokolliert, wenn eine optimierte Massenprotokollierung anwendbar ist. Andernfalls werden die eingefügten Zeilen vollständig im Transaktionsprotokoll protokolliert. Weitere Informationen dazu, wann Massenimportvorgänge protokolliert werden und wie minimal protokollierte Massenimportvorgänge ausgeführt werden, finden Sie unter Minimal protokollierte Vorgänge und Voraussetzungen für die minimale Protokollierung beim Massenimport.
  • Paralleles Importieren von Daten von mehreren Clients in eine einzige Tabelle
    Mit SQL Server können Daten parallel von mehreren Clients in eine einzige Tabelle massenimportiert werden. Alle drei Massenimportmethoden unterstützen das parallele Importieren von Daten. Dadurch kann die Leistung der Datenimportvorgänge verbessert werden.
    Weitere Informationen finden Sie unter Paralleles Importieren von Daten mit Sperren auf Tabellenebene.
  • Verwenden von Batches
    Informationen zum Verwenden von Batches beim Importieren von Daten und Informationen zu den Befehlsqualifizierern zum Verwalten von Batches finden Sie unter Verwalten von Batches für den Massenimport.
    ms190421.note(de-de,SQL.90).gifHinweis:
    Mit der Option BULK der OPENROWSET-Klausel kann die Batchgröße nicht gesteuert werden.
  • Deaktivieren von Triggern
    Das Deaktivieren von Triggern kann die Leistung verbessern.
    Weitere Informationen zur Auswirkung der Ausführung von Triggern auf Massenimportvorgänge und dazu, wie Trigger aktiviert oder deaktiviert werden, finden Sie unter Steuern der Triggerausführung beim Massenimport von Daten.
  • Deaktivieren von Einschränkungen
    Informationen zur Auswirkung der Einschränkungsüberprüfung auf Massenimportvorgänge und dazu, wie CHECK- und FOREIGN KEY-Einschränkungen einer Tabelle aktiviert oder deaktiviert werden, finden Sie unter Steuern der Einschränkungsüberprüfung mithilfe von Massenimportvorgängen.
  • Anordnen der Daten in einer Datendatei
    Standardmäßig wird bei einem Massenimportvorgang angenommen, dass eine Datendatei nicht sortiert ist. Mithilfe des Dienstprogramms bcp und der BULK INSERT-Anweisung können Sie angeben, wie Daten in der Datendatei während eines Massenimportvorgangs sortiert werden, wenn die Tabelle über einen gruppierten Index verfügt. Die Daten in der Datendatei müssen nicht in derselben Reihenfolge wie in der Tabelle sortiert werden. Die Leistung des Massenimportvorgangs kann jedoch durch eine identische Reihenfolge verbessert werden.
    Weitere Informationen finden Sie unter Steuern der Sortierreihenfolge beim Massenimport von Daten.
    ms190421.note(de-de,SQL.90).gifHinweis:
    Mit INSERT ... SELECT * FROM OPENROWSET(BULK...)-Anweisungen kann die Sortierreihenfolge nicht gesteuert werden.
  • Steuern des Sperrverhaltens
    Informationen zum Angeben des Sperrverhaltens während Massenimportvorgängen finden Sie unter Steuern des Sperrverhaltens für den Massenimport.
  • Importieren von Daten im systemeigenen Format
    Weitere Informationen finden Sie unter Verwenden des systemeigenen Formats zum Importieren oder Exportieren von Daten und Verwenden des systemeigenen Unicode-Formats zum Importieren oder Exportieren von Daten.

Siehe auch

Verweis

SQL Server, Datenbanken-Objekt

Konzepte

Importieren und Exportieren von Massendaten

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Geänderter Inhalt:
  • Die Diskussion über das Deaktivieren von Einschränkungen zum Angeben, dass die CHECK- und FOREIGN KEY-Einschränkungen zusammen aktiviert oder deaktiviert werden, wurde aktualisiert.