2016-06-23 6 views
-2

Я пытаюсь загрузить файл 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          

Как улучшить производительность?

+0

Правильно ли указано ваше предложение в команде 'sqlldr' или оно просто не вставлено? – Glenn

+0

Вы посмотрели документацию? Возможно, вы захотите рассмотреть возможность изменения BINDSIZE и/или READSIZE. [И посмотрите это] (https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_control_file.htm#SUTIL1135). –

+0

Попробуйте внести некоторые изменения в значение BINDSIZE и скорость до 12 раз, тогда скорость вставки составляет 400 строк/сек. Любая идея увеличить около 1000 строк/сек. Спасибо –

ответ

1

Вы можете использовать оператор alter table, чтобы отключить ведение журнала в таблице во время загрузки. Было бы интересно увидеть разницу с записью и без нее. Также есть триггеры, которые могут быть приостановлены? Может быть, индексы падения перед загрузкой и воссоздать после того, как они будут обновляться во время загрузки?

Просто выбросьте некоторые идеи, которые могут немного ускорить работу. Пожалуйста, сообщите, что, если таковые имеются, работает. С нетерпением ждем, что принесет наибольшую пользу.

+0

Это нормально работает на сервере. Во-первых, я запускаю это из местных источников, поэтому занимает слишком много времени. Теперь потребовалось 3 минуты за миллион строк –

Смежные вопросы