Уважаемые слушатели! Обращаем ваше внимание, что 01.05.2024 и 09.05.2024 у нас выходные дни. Вы можете оставить сообщение в чате, мы обязательно ответим!
Уважаемые слушатели! Теперь для вас работает номер технической поддержки 8 (800) 444-28-35 с 9:00 до 21:00

Частным лицам +7 (495) 232-32-16

Слушателям
от организации
+7 (495) 780-48-44

+7 (495) 780-48-49

Как ускорить работу конвейера потока данных в пакете служб интеграции

Самородов Федор Анатольевич: Как ускорить работу конвейера потока данных в пакете служб интеграции

СФА

В конвейере потока данных (data flow task) зачастую участвует большое количество преобразований. Но не все они встраиваются в конвейер одинаково.

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

Посмотрите внимательно на пример:

Блокирующая операция разбивает цепочку неблокирующих. Плохая практика. Конвейер работает очень медленно, с большими накладными расходами.

Заметили неприятный эффект блокировки? Операция сортировки втянула в себя уже более пяти миллионов строк, но так и не выпустила из себя ни одной строки. Остальная часть конвейера простаивает.

И только после того, как все строки поступили на сортировку, эта операция начинает отдавать их на дальнейшую обработку:

При такой последовательности операций вторая часть конвейера запустится только после завершения первой.

Давайте просто поменяем местами сортировку и аудит и запустим пакет ещё раз. Извлечение строк только-только началось, а у нас уже одновременно работают четыре операции, а не три, как раньше:

А теперь всё правильно. Максимальное количество неблокирующих операций собрано в одну непрерывную цепочку.

Первый вариант работает 16 минут, второй — 11.

А сам совет звучит очень просто. Старайтесь ставить неблокирующие операции рядом. По возможности, не разбивайте паралельно работающую цепочку блокирующими операциями.

Кстати, а знаете ли вы, что в службах интеграции имеются ещё и полу-блокирующие операции? Звучит интригующе... Что это за операции и как с ними обращаться, вы узнаете на наших курсах по SQL Server Integration Services!

Ближайшие группы

envelope

Спасибо! Вам на e-mail отправлено письмо со ссылкой для подтверждения

Если письмо не пришло, поищите его в папке со спамом или повторите подписку

email-checked.png

Вы подписались на рассылку

Как будет оформлено обучение?

Оплачивать будет:

Спасибо за обращение! Ваш менеджер свяжется с Вами в течение нескольких минут.