Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Ferndatenzugriff und Arbeit mit Massendaten » Daten importieren und exportieren » Daten importieren

 

Daten mit der LOAD TABLE-Anweisung importieren

Verwenden Sie die LOAD TABLE-Anweisung, um Daten, die sich auf einem Datenbankserver oder einem Clientcomputer befinden, in eine vorhandene Tabelle im Text/ASCII-Format zu importieren.

Sie können die LOAD TABLE-Anweisung auch verwenden, um Daten aus einer Spalte von einer anderen Tabelle oder aus einem Werteausdruck zu importieren (z.B. aus den Ergebnissen einer Funktion oder Systemprozedur).

Die LOAD TABLE-Anweisung fügt Zeilen einer Tabelle hinzu, ohne welche zu ersetzen.

Das Laden mit der LOAD TABLE-Anweisung (ohne die Optionen WITH ROW LOGGING und WITH CONTENT LOGGING) ist bedeutend schneller als sie Verwendung der INPUT-Anweisung.

Es werden keine Trigger bei Daten ausgelöst, die mit der LOAD TABLE-Anweisung geladen werden.

Überlegungen zu materialisierten Ansichten

Bei Sofortansichten wird ein Fehler zurückgegeben, wenn Sie versuchen, einen Massenimport von Daten in eine Basistabelle durchzuführen. Sie müssen die Daten in der Ansicht erst kürzen und können erst dann den Massenimport vornehmen.

Bei manuellen Ansichten können Sie einen Massenimport von Daten in eine Basistabelle durchführen. Allerdings werden die Daten in der Ansicht veraltet, bis die nächste Aktualisierung erfolgt.

Denken Sie daher daran, eine Kürzung in abhängigen materialisierten Ansichten vorzunehmen, bevor Sie einen Massenimport wie z.B. eine LOAD TABLE-Anweisung in einer Tabelle versuchen. Nachdem Sie die Daten geladen haben, aktualisieren Sie die Ansicht. Weitere Hinweise finden Sie unter TRUNCATE-Anweisung und REFRESH MATERIALIZED VIEW-Anweisung.

Überlegungen zu Textindizes

Bei Sofort-Textindizes kann das Aktualisieren eines Textindexes nach dem Massenimport wie etwa einer LOAD TABLE-Anweisung in der Basistabelle eine bestimmte Zeit in Anspruch nehmen, auch wenn die Aktualisierung automatisch erfolgt. Bei manuellen Indizes kann sogar die Aktualisierung eine Zeitlang dauern.

Denken Sie daran, abhängige Textindizes zu löschen, bevor Sie einen Massenimport wie eine LOAD TABLE-Anweisung für eine Tabelle vornehmen. Nachdem Sie die Daten geladen haben, erstellen Sie den Textindex neu. Weitere Hinweise finden Sie unter DROP TEXT INDEX-Anweisung und CREATE TEXT INDEX-Anweisung.

Überlegungen zur Datenbank-Wiederherstellung und Synchronisation

Wenn Daten von einer Datei geladen werden (z.B. LOAD TABLE Tabellenname FROM Dateiname;), wird standardmäßig nur die LOAD TABLE-Anweisung im Transaktionslog protokolliert, und nicht die tatsächlichen Datenzeilen, die geladen werden. Dies stellt ein Problem dar, wenn ein Wiederherstellen der Datenbank unter Verwendung des Transaktionslogs versucht wird, falls die ursprüngliche Datei geändert, verschoben oder gelöscht wurde. Es bedeutet auch, dass Datenbanken, die an einer Synchronisation oder Replikation beteiligt sind, die neuen Daten nicht erhalten.

Um die Schwierigkeiten bei der Wiederherstellung und Synchronisation zu beseitigen, gibt es bei der LOAD TABLE-Anweisung zwei Protokollierungsoptionen: WITH ROW LOGGING, wobei INSERT-Anweisungen im Transaktionslog für jede geladene Zeile erstellt werden, und WITH CONTENT LOGGING, wobei die geladenen Zeilen in Abschnitte gruppiert und die Abschnitte im Transaktionslog protokolliert werden. Diese Optionen ermöglichen eine Wiederholung eines Ladevorgangs, selbst wenn die Quelle der geladenen Daten nicht mehr verfügbar ist. Weitere Hinweise finden Sie unter LOAD TABLE-Anweisung.

Überlegungen zur Datenbankspiegelung

Wenn Ihre Datenbank an einer Spiegelung beteiligt ist, sollten Sie die LOAD TABLE-Anweisung nur mit Vorsicht verwenden. Wenn Sie beispielsweise Daten von einer Datei laden, bedenken Sie, ob die Datei zum Laden auf den Spiegelserver verfügbar ist oder ob sich die Daten in der Quelle, von der Sie laden, bis zu dem Zeitpunkt ändern werden, an dem die Spiegeldatenbank die Daten lädt. Wenn eines dieser Risiken besteht, sollten Sie vielleicht WITH ROW LOGGING oder WITH CONTENT LOGGING als Protokollierungsstufe in der LOAD TABLE-Anweisung angeben. Dadurch sind die Daten, die in die Spiegeldatenbank geladen werden, identisch mit den Daten, die in die gespiegelte Datenbank geladen wurden. Weitere Hinweise finden Sie unter LOAD TABLE-Anweisung.

Siehe auch