2015-08-27 4 views
0

Я построил пакет SSIS с помощью Visual Studio, но для его выполнения требуется около 20 часов. Между тем, если я просто использую мастер импорта/экспорта SQL Server, это занимает около часа. Поэтому мой вопрос: возможно ли запустить DTSWizard.exe из командной строки?Возможно ли запустить DTSWizard.exe из командной строки?

Моя конечная цель состоит в том, чтобы автоматизировать процесс импорта данных и запустить его ежемесячно

+0

Мастер импорта/экспорта создает пакет. Вы можете сохранить пакет и запустить его вместо – whereisSQL

+0

, который действительно не отвечает на мой вопрос. Я хочу знать, есть ли возможность запускать DTSWizard.exe из командной строки и/или программно – ElenaDBA

+0

звучит хорошо. просто подумал, что это может помочь не принимать 20 часов в следующий раз, когда вы его запустите. Это не было ответом, просто комментарий – whereisSQL

ответ

2

SSIS является инструментом для выполнения Extract, Transform и нагрузки операции (ETL).

DTSWizard (Мастер импорта/экспорта) создает пакет SSIS. Visual Studio также создает пакет SSIS. Самое большое различие между ними заключается в том, что мастер импорта/экспорта на самом деле не позволяет выполнять преобразования за пределами типов данных. Второе отличие заключается в том, что мастер импорта экспорта можно использовать во всех версиях SQL Server, включая Express. Если у вас установлен только экспресс-выпуск, функция «Сохранить пакет» будет отключена.

Подход мастера импорта/экспорта заключается в том, что он добавляет источник в пункт назначения до N (5, я думаю) внутри потока данных. Если вы выбрали более N источников для получателей, то он добавляет больше задач потока данных. В силу этого «шаблона» дизайна эти первые N преобразований параллельно выполняются параллельно.

Если вы столкнулись с 20-кратным увеличением времени между созданным вами пакетом и тем, который был выпущен мастером DTS, тогда у вас, вероятно, будут выполняться ваши задачи потока данных в серийном режиме. Удалите прецедентные ограничения между ними, и они должны запускаться параллельно, а сеть - 1 час.

Чтобы ответить на вопрос, они не публикуют параметры для DTSWizard, но вы можете заметить, что он их принимает, потому что при запуске из SSMS в зависимости от того, выбрано ли вы экспортировать данные или импортировать данные, он предварительно заполняет источник/destination в качестве диспетчера соединений OLE DB типа SQL Server.

Если вы считаете, что будете умны и переименуйте существующий файл DTSWizard.exe в _DTSWizard.exe, а затем создайте пакетный скрипт с тем же именем, который выписывает переданные ему параметры, чтобы записывать, что SSMS делает, но что приводит к сбою вашего экземпляра SSMS, поэтому не делайте этого.

Итак, вы можете запустить DTSWizard.exe из командной строки, но вы не можете указать диспетчера соединений источника и получателя + все связанные таблицы/файлы. Разница в производительности, которую вы испытываете, вероятно, обусловлена ​​дизайном и не имеет оснований для использования мастера над «обычным» SSIS.

Смежные вопросы