Я пытаюсь загрузить файл csv
в сервер Oracle через sqlldr
для автоматизации пакетных файлов. Для загрузки файла на сервер Oracle требуется слишком много времени с sqlldr
. Через пакет он загружает 2100 строк в минуту. Когда я пытаюсь импортировать данные непосредственно из файла csv
из Oracle SQL Developer, он берет 100 тыс. Строк в минуту.Как улучшить производительность SQLLDR?
Это мой .ctl
файл:
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
)
Это мой .bat
файл:
sqlldr [email protected]/demo1 DATA='D:\Event.csv"
CONTROL=D:\Insert.ctl LOG=Insert.log BAD=Insert.bad
Как улучшить производительность?
Правильно ли указано ваше предложение в команде 'sqlldr' или оно просто не вставлено? – Glenn
Вы посмотрели документацию? Возможно, вы захотите рассмотреть возможность изменения BINDSIZE и/или READSIZE. [И посмотрите это] (https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_control_file.htm#SUTIL1135). –
Попробуйте внести некоторые изменения в значение BINDSIZE и скорость до 12 раз, тогда скорость вставки составляет 400 строк/сек. Любая идея увеличить около 1000 строк/сек. Спасибо –