Копирование 6000 таблиц и данных из sqlserver в oracle ==> самый быстрый способ? - PullRequest
6 голосов
/ 28 апреля 2010

Мне нужно скопировать таблицы и данные (данные за 5 лет, 6200 таблиц), хранящиеся в sqlserver, я использую соединение данных и odbc для соединения, и datstage автоматически создает таблицу с данными, но это занимает 2-3 часа на Таблица как таблицы очень большая (0,5 гига, 300 + столбцы и около 400 тысяч строк).

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

Ответы [ 3 ]

6 голосов
/ 28 апреля 2010

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

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

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

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

2 голосов
/ 28 апреля 2010

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

2 голосов
/ 28 апреля 2010

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

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

...