Проблема тайм-аута при передаче данных из MySQL на SQL Server с использованием служб SSIS - PullRequest
0 голосов
/ 01 июня 2011

Я пытаюсь передать 67,714,854 строк из MySQL в SQL Server, используя SSIS . Пакет истекает после передачи 14,282,990 строк. Я также изменил свойство тайм-аута на 0, но это не помогло.

Как мне решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 25 июня 2015

Я нашел хакерское решение.И это имеет предел в конце вашего запроса.Я столкнулся с той же проблемой с подключением ADO .NET для подключения к MySQL.Хотя это не решает проблему.По крайней мере, сделать работу.

SSIS: 2208 R2.MySQL: 5,0

1 голос
/ 02 июня 2011

На вашем соединении OLE DB Destination какой «Режим доступа к данным» вы выбрали. Если вы выбрали «Таблица или представление - быстрая загрузка» (это значение по умолчанию), то будет задан «Максимальный размер вставки». Вы можете попробовать одну из двух вещей: 1) изменить размер коммита на большее число; или 2) попробуйте другой режим доступа к данным «Таблица или vew». Поскольку вы получаете ошибку тайм-аута, я подозреваю, что вариант 1 может не помочь (поскольку вы уже получаете тайм-аут с меньшим значением), поэтому попробуйте вариант 2. Хотя это, вероятно, приведет к снижению производительности, он может фактически завершиться успешно. (Затем можно попробовать подход @ Siva и разделить вывод по нескольким адресатам для повышения производительности).

(Примечание: я имею в виду то, что доступно в SQL Server 2008 R2, если вы используете предыдущие версии, оно может немного отличаться)

Если ничего из вышеперечисленного не работает, вы также можете попробовать создать новый пакет служб SSIS с нуля, запустив мастер импорта SQL Server (щелкните правой кнопкой мыши базу данных в SQL Server Management Studio и выберите Задачи / Импорт данных. На экранах мастера и ближе к концу убедитесь, что вы установили флажок Сохранить пакет служб SSIS и выберите расположение файла для его сохранения. Как правило, полученный пакет служб SSIS будет функциональным (и затем вы также можете вносить любые изменения, которые вы нравится это).

0 голосов
/ 01 июня 2011

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

set_time_limit(0);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...