Oracle SQL-Loader - Wie nicht anzeigen "Commit-Punkt erreicht - die logische record count" zählt
Ich bin das laden von großen Dateien via Oracle SQL-Loader über vpn von zu Hause aus, und Sie nehmen eine Menge Zeit. Sie waren viel schneller zu laden, wenn ich geladen von der Arbeit. Die Dateien, die ich bin laden sind auf meinem server arbeiten bereits.
Also meine Meinung ist, dass der langsamer ist, weil der "Commit-Punkt erreicht - die logische record count" , gedruckt wird für jede Zeile. Muss langsam durch, Sie müssen über das Netzwerk gesendet werden. Ich habe mal gegoogelt aber finde keine Möglichkeit zum drucken, weniger von Ihnen. Habe versucht, das hinzufügen von Zeilen=5000 als parameter, aber ich bekomme immer noch die Drucke für jede Zeile.
Wie kann ich drucken Sie weniger von den "Commit-Punkt erreicht - die logische record count" zählt?
Dank
InformationsquelleAutor Superdooperhero | 2012-08-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie mit dem Schlüsselwort
silent
, die verfügbar ist in der options-Klausel. Sie können die folgende Dinge zu schweigen:Würden Sie wollen, zu unterdrücken
feedback
.Können Sie entweder auf der Kommandozeile, zum Beispiel:
In der options-Klausel der control-Datei, zum Beispiel:
Wenn Sie keine Indizes in der Tabelle und Sie nichts dagegen tun, ein direkter Pfad zu laden versuchen, mit den
direct=true
option, die helfen sollte, so würde die Erhöhung der commit-Intervall (weit mehr als die Verwendung von stdout). Bis die commit-Intervall auf 20k und es geht schneller.InformationsquelleAutor Ben
Versuchen umleiten output und error in eine Datei.
InformationsquelleAutor DCookie
Ben ' s Antwort ist sehr gut. Verwenden Sie keine shell-Programm zu unterdrücken, die
STDOUT
. Ich verwendet die folgenden:Eines der Probleme mit diesem ist, dass, wenn Sie mithilfe von Skripts, den Befehl ausführen, dann wird der error-Wert ausgegeben werden, durch den sed-Befehl. Anders ausgedrückt, wenn aus irgendeinem Grund, den sqlldr ist fehlgeschlagen mit Rückgabewert 1, dann sed wird sofort Spülen Sie diese mit dem Rückgabewert 0. Damit Ihr Fehlerstatus ausgespült werden.
Umleiten
STDOUT
undSTDERR
vielleicht nicht so gut sein, wie Ben ' s Lösung.InformationsquelleAutor Kemin Zhou
Ich hatte dasselbe problem beim aufrufen
sqlldr
von einem shell-Skript.FEHLER:
Bei der Untersuchung festgestellt, dass der control-Datei
(v_movementrules_control)
wurde beschädigt beim kopieren von Windows nach Unix-system und es wurde DOS/Windows-Zeilenende-Zeichen^M
am Ende jeder Zeile.InformationsquelleAutor greatvedas