




Если вы рассматриваете их как соединение с базой данных, они настолько поточно-ориентированы, насколько это возможно. Я думаю, что более важный вопрос - таблица будет заблокирована, когда пакет попадет в нее.
Пакет SSIS может делать только то, что ему говорят. Если вы преобразовываете таблицу, она, вероятно, будет заблокирована во время выполнения операции. Это приведет к тому, что задания будут более или менее последовательными, если они сначала не истекут. Если вы копируете данные, вам, вероятно, удастся избежать параллельной работы.
ТАК ответ на ваш вопрос: «Да, но». Это базовый доступ к данным, который определит, могут ли вещи работать параллельно.
хорошо, это то, о чем я тоже думал, поэтому вызов SSIS похож на вызов веб-страницы или веб-службы.
Да, пакеты SSIS ориентированы на многопоточность. Вы также можете управлять параллелизмом несколькими способами:
Индивидуальный пакет может быть установлен на запустить ограниченное количество потоков. Этим управляет свойство пакета MaxConcurrentExecutables.
Пакеты для последовательного запуска могут быть настроен с зависимостью. Вы можете сделать это внутри пакета или из главного пакета, вызвав дочерние пакеты.
Свойство MaxConcurrentThreads можно переопределить в командной строке для DTExec.exe.
Если вам нужно уменьшить проблемы с блокировками и конфликтами, вы можете установить свойства изоляции транзакции или написать запросы к базе данных с подсказками без блокировки. Очевидно, вам нужно будет следить за любыми потенциальными проблемами параллелизма или грязного чтения.
Вы можете использовать профилировщик или perfmon в базе данных, в которой запущены пакеты, для поиска признаков проблем с блокировкой. Не вдаваясь в подробное обсуждение вопросов настройки базы данных, которое само по себе является довольно большой темой, поищите большие цифры в статистике ожидания защелок и блокировок как признак возможных узких мест.
Это здорово, так как SQL-сервер выполнит всю блокировку за вас.