KeepTool 16 kann jetzt Oracle Bulk Insert Skripts erzeugen. Das Erzeugen von Insert Skripts aus Ihren Daten ist ein bekanntes Hora-Feature, das schon seit vielen Jahren vorhanden ist. Vermutlich haben Sie an dieser Stelle keine großen Änderungen erwartet.
Herzlich willkommen zu unserem November-Newsletter. Lassen Sie uns das Thema Insert Skripts mit einem Blick auf die Vorgängerversion Hora 15 beginnen. Wir sind mit dem Oracle Demo-Schema HR (human resources, d.h. Personalwesen) verbunden. Hora zeigt den Inhalt der Tabelle JOB_HISTORY an. Ein Klick mit der rechten Maustaste innerhalb der Datenanzeige öffnet das Kontextmenü. Wir wählen den Punkt “Create INSERT script”.
Darunter befinden sich zwei Untermenüpunkte
Unabhängig davon, welchen Punkt Sie wählen, erhalten Sie zu Ihren Daten einen Insert-Skript mit dem hier zu sehenden Aufbau:
Zunächst werden einige SQL*Plus-Variablen gesetzt. Das erspart Ihnen möglicherweise Probleme, wenn das Skript später mit Hilfe von SQL*Plus ausgeführt werden soll. Die folgenden Zeilen enthalten Beispielcode um Datenbanktrigger und Fremdschlüssel von Detailtabellen vorübergehend zu deaktivieren. Da die Tabelle JOB_HISTORY keine Detailtabellen ha, ist im Beispiel nur Code zum Deaktivieren der Trigger zu sehen. Entfernen Sie einfach die Kommentarzeichen “–” am Beginn der Zeile um den Beispielcode zu übernehmen.
Danach sehen Sie zahlreiche Insert-Anweisungen; ein Befehl für jede Datenzeile. Schließlich wird die Transaktion mit einer Commit-Anweisung beendet. Ggf. können temporär deaktivierte Trigger und Fremdschlüssel wieder eingeschaltet werden..
Das war’s. Der Skript kann nun in Hora, unserem separaten SQL Editor oder Oracle SQL*Plus gestartet werden.
KeepTool 16 enthält mehrere Neuerungen für das Erzeugen von Insert Skripts. Wir werden jeden Punkt später im Detail beleuchten.
Zunächst möchten wir einen Überblick darüber geben, was sich in der Version 16 geändert hat:
In den folgenden Abschnitten schauen wir uns die einzelnen Punkte im Detail an.
Entdecken Sie die Möglichkeiten von KeepTool.
Es gibt unterschiedliche Möglichkeiten, um in einer Oracle-Datenbank Bulk Inserts auszuführen. Wir haben uns dafür entschieden, die INSERT ALL Syntax zu implementieren.
Im Dialog “Settings” können Sie eine “Insert script Bulk Size” einstellen.
Damit wird die Anzahl Datenzeilen vorgegeben, die zu einer einzelnen Insert-Anweisung zusammengefasst werden sollen. Sie können diese bei “1” lassen, um einzelne Insert-Anweisungen zu erzeugen wie in Hora 15 und früher:
Für dieses Beispiel haben wir den Wert auf überschaubare “3” erhöht. Damit erzeugt Hora nun INSERT ALL Anweisungen, die 3 Datenzeilen mit Hilfe einer einzelnen Insert-Anweisung einfügen.
In der Praxis ist empfohlen den Wert deutlich größer zu wählen, dabei aber in der Regel unter 1.000 zu bleiben.
Die Klausel SELECT FROM DUAL am Ende der Anweisung ist bei der INSERT ALL Syntax formell erforderlich.
Für Oracle 23c erzeugt Hora eine INSERT ALL Anweisung, die keine wiederholte Auflistung der Spaltennamen und auch nicht die formelle Klausel SELECT 1 FROM DUAL beinhaltet.
Laut Testberichten ist die neue Syntax auch deutlich performanter als das traditionelle INSERT ALL.
Direct Path Inserts kennen Sie möglicherweise bereits aus dem Umfeld der Oracle Export- und Importwerkzeuge. Diese Technologie kann auch bei Insert Skripts genutzt werden. Direct Path Inserts können deutlich schneller ausgeführt werden. Trotzdem ist es nützlich, sich mit den Vor- und Nachteilen von Direct Path Inserts vertraut zu machen.
Sie können Direct Path über eine Checkbox in den Einstellungen aktivieren.
Später zeigen wir Ihnen noch eine Zusammenfassung aller Einstellungen für die Erzeugung von Insert Skripten.
Wenn Direct Path Inserts aktiviert sind, gibt es die folgenden beiden Änderungen beim Erzeugen von Insert Skripten:
Wenn Sie für eine sehr große Tabelle Insert-Skripte erzeugen, kann die Dateigröße gut und gerne mehrere hundert MByte erreichen. Insofern Sie eine Datei dieser Größe im Editor Ihrer Wahl öffnen, kann das Bearbeiten sehr träge werden, insbesondere wenn eine Syntaxhervorhebung oder automatischer Zeilenumbruch aktiv sind. In Hora geben wir Ihnen jetzt die Möglichkeit, solche Skripts auf mehrere kleinere Dateien aufzuteilen.
Sie können die maximale Dateigröße unter “Settings | Data Content | Split Insert Scripts every MBytes” vorgeben. Für unseren SQL Editor ist eine Maximalgröße von 50 MBytes ein guter Ausgangspunkt.
In der folgenden Abbildung zeigen wir noch einmal zusammenfassend alle Einstellungen, die für das Erzeugen von Insert Skripten relevant sind.
Auf der rechten Seite der Lasche “Data Content” gibt es nun die folgenden Einstellmöglichkeiten:
Einige Optionen sind bereits aus früheren Versionen vorhanden. Dazugekommen sind Einstellmöglichkeiten für die neuen Features.
Hora 16 bringt eine Reihe Neuerungen für das Erzeugen von Insert-Anweisungen wie beispielsweise Oracle Bulk Insert Skripts.
Diese sind besonders nützlich bei der Verarbeitung großer Datenmengen und unter Performanceaspekten.
KeepTool 16.1.0 zeigt einen modalen Dialog, um die Einstellungen zur INSERT-Skript-Erzeugung anpassen zu können.
Die aktuell gewählten Einstellungen können als Standard gespeichert werden.