Копирование 6 000 таблиц и данных от sqlserver до оракула ==> самый быстрый метод?

я должен скопировать таблицы и данные (данные приблизительно 5 лет, 6 200 таблиц) сохраненный в sqlserver, я использую datastage и odbc соединение с подключением, и datstage автоматически составляет таблицу с данными, но его взятие 2-3 часов на таблицу как таблицы является очень большим (0,5 ГБ, 300+columns и о 400k строках).

Как я могу достигнуть этого fastes как на этом уровне, я могу только скопировать 5 таблиц в день, но в течение 30 дней я должен отодвинуться эти 6 000 таблиц.

6
задан BenV 13 July 2010 в 15:32
поделиться

3 ответа

Задумывались ли вы о написании сценариев схем таблиц и создании их в Oracle, а затем использовании SSIS для массового копирования данных в Oracle? Другой альтернативой было бы использовать связанные серверы и серию операторов «Select * INTO xxx», которые копировали бы схему и данные (за вычетом ключевых ограничений), но я думаю, что производительность будет довольно плачевной с 6000 таблицами.

2
ответ дан 10 December 2019 в 00:35
поделиться

6000 таблиц по 0,5 Гб каждая будет примерно 3 терабайта. Плюс индексы. Я бы, наверное, не стал использовать соединение ODBC, но вопрос в том, где узкое место.

У вас есть этап извлечения из SQL Server. У вас есть транспорт из блока SQL Server в блок Oracle. У вас есть груз.

Если сеть является ограничивающей возможностью, вам, вероятно, лучше всего распаковать в файл, сжать его, передать сжатый файл, распаковать его и затем загрузить. Внешние таблицы в Oracle - это самый быстрый способ загрузки данных из плоских файлов (с разделителями или фиксированной длины), предпочтительно распределенных по нескольким физическим дискам для распределения нагрузки и без регистрации.

Если не произойдет значительного преобразования, я бы забыл о данных. Все, что не извлекается или не загружается, является лишним, и его следует минимизировать.

6
ответ дан 10 December 2019 в 00:35
поделиться

Можно ли передавать отдельные таблицы одновременно, параллельно?

Мы регулярно передаем большие плоские файлы в SQL Server, и я запускаю их параллельно - это использует больше пропускной способности в сети и SQL Server, но они завершаются вместе быстрее, чем последовательно.

2
ответ дан 10 December 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: