Я хочу переместить миллионы записей с сервера sql на oracle в java, поэтому логика равна
1. выберите все данные из SQL-сервера за указанный диапазон дат,
2. вставить их в оракулу один за другим,
3. Удаление данных в SQL сервереПереместить миллионы записей с сервера sql на oracle каждый день
Но поскольку данные очень огромный, я боюсь, что этот процесс будет стоить слишком много времени. поэтому я хочу сделать
1. Использовать несколько потоков для чтения даты с сервера sql (Slip указанный диапазон дат до некоторого меньшего диапазона)
2. Использование нескольких потоков для вставки даты в oracle.
Но я не уверен, что несколько потоков могут решить проблему.
Пожелайте получить некоторые предложения.
Сколько данных делает «миллионы записи "подразумевают? Мы говорим пару сотен МБ? Десятки ГБ? Как долго вы должны загружать данные? В чем узкое место? Предполагая, что сеть является узким местом, переход непосредственно к базе данных SQL Server через ссылку базы данных будет намного более эффективным, чем решение Java, которое потребует перемещения всех данных по сети в два раза. –
Я согласен с вами в том, что Java в этом случае абсолютно неактуальен, но не может согласиться с использованием ссылки SQL для чего-либо более 100 000 записей. В этом случае свалка и массовая загрузка будут намного эффективнее. И если падение индексов и отключение всех ограничений перед использованием SQLLDR возможно, это также поможет. –