2013-06-01 7 views
0

Я хочу переместить миллионы записей с сервера sql на oracle в java, поэтому логика равна
1. выберите все данные из SQL-сервера за указанный диапазон дат,
2. вставить их в оракулу один за другим,
3. Удаление данных в SQL сервереПереместить миллионы записей с сервера sql на oracle каждый день

Но поскольку данные очень огромный, я боюсь, что этот процесс будет стоить слишком много времени. поэтому я хочу сделать
1. Использовать несколько потоков для чтения даты с сервера sql (Slip указанный диапазон дат до некоторого меньшего диапазона)
2. Использование нескольких потоков для вставки даты в oracle.

Но я не уверен, что несколько потоков могут решить проблему.

Пожелайте получить некоторые предложения.

+0

Сколько данных делает «миллионы записи "подразумевают? Мы говорим пару сотен МБ? Десятки ГБ? Как долго вы должны загружать данные? В чем узкое место? Предполагая, что сеть является узким местом, переход непосредственно к базе данных SQL Server через ссылку базы данных будет намного более эффективным, чем решение Java, которое потребует перемещения всех данных по сети в два раза. –

+0

Я согласен с вами в том, что Java в этом случае абсолютно неактуальен, но не может согласиться с использованием ссылки SQL для чего-либо более 100 000 записей. В этом случае свалка и массовая загрузка будут намного эффективнее. И если падение индексов и отключение всех ограничений перед использованием SQLLDR возможно, это также поможет. –

ответ

1

1) Дамп данных в промежуточный файл (CSV или фиксированной ширины) 2) использовать SQLLDR импортировать

Вы должны describe файл дампа для SQLLDR

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