Ich versuche, eine csv
Datei in Oracle-Server über sqlldr
für meine Batch-Datei-Automatisierung hochladen. Es dauert zu lange, die Datei mit sqlldr
auf den Oracle-Server hochzuladen. Über Batch lädt es 2100 Zeilen in einer Minute hoch. Wenn ich versuche, Daten direkt aus der csv
-Datei von Oracle SQL Developer zu importieren, dauert es 100000 Zeilen pro Minute.Wie kann die SQLLDR-Leistung verbessert werden?
Das ist meine .ctl
Datei:
OPTIONS(SKIP=1)
LOAD DATA
INFILE "D:\\TestBackup\Event.csv"
INSERT into table EVENT
APPEND
fields terminated by ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(BRANCH_ID,TOTAL_SALES,TOTAL_LOST_SALES,TOTAL_INVENTORY,INSERTDATE sysdate
)
Das ist meine .bat
Datei:
sqlldr [email protected]/demo1 DATA='D:\Event.csv"
CONTROL=D:\Insert.ctl LOG=Insert.log BAD=Insert.bad
Wie um die Leistung zu verbessern?
Ist das Zitat korrekt im Befehl 'sqlldr' oder wurde es nicht korrekt eingefügt? – Glenn
Haben Sie sich die Dokumentation angesehen? Sie sollten in Erwägung ziehen, BINDSIZE und/oder READSIZE zu ändern. [Und siehe das] (https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_control_file.htm#SUTIL1135). –
Versuchen Sie einige Änderungen in BINDSIZE Wert und Geschwindigkeit bis zu 12 mal jetzt die Einfügerate beträgt 400 Zeilen/Sek. Irgendeine Idee, um 1000 Reihen/sek zu erhöhen. Danke –