Проверьте, в чем ваш лимитирующий фактор. Обычно есть 3 пункта для проверки:
Удаленный сервер работает медленно. Исходная БД может работать с низкой памятью, скоростью чтения или свободным процессором. Подставьте запрос с помощью прямого предложения SELECT
без предложения WHERE
или JOIN
s и проверьте, работает ли ваш пакет SSIS быстрее.
Целевая БД. Возможно, у вас есть индексы, высокая латентность записи на жестком диске или недостаточно процессор. Запустите INSERT
для вашего целевого стола и посмотрите, сколько времени потребуется.
Проблема может быть посередине: передача между двумя серверами. Сеть обычно является основным узким местом. SSIS размещен на том же сервере, что и SQL-сервер? то у вас есть 2 сетевых подключения + возможное узкое место на специализированной машине SSIS.
В зависимости от узкого места существуют различные решения.
Если у вас есть пропускная способность сети и узкое место - 1 процессор на запрос в Oracle, то вы можете разделить данные по горизонтали (от 1 до 100, от 101 до 200 и т. Д.); установить несколько соединений с Oracle и загрузить данные в нескольких потоках. Количество потоков на 1 меньше, чем количество процессоров на Oracle, SSIS или SQL Server (что когда-либо меньше).
Какая часть этого является причиной медленного движения? –