Как SSIS решает, какую задачу выполнять дальше, если доступно более одной - PullRequest
1 голос
/ 29 января 2009

Например, если я добавлю четыре (пустые) задачи сценария A1, A2, B1 и B2, где у A2 есть ограничение для запуска после A1, а у B2 есть ограничение для запуска после B1, но ни у A1, ни B1 нет ограничений, тогда в каком порядке будут выполняться задачи?

Когда я пытаюсь это сделать, кажется, что выполняется A1, затем B1, затем A2, затем B2. Но почему? Этот вопрос из любопытства.


Отредактировано, чтобы добавить:

Я специально установил параллелизм в 1 и добавил окна сообщений, чтобы я мог видеть порядок, который он принимает. Он всегда принимает тот же порядок, что я отмечал выше, но было любопытно, была ли какая-то логика относительно того, почему он выбирает этот порядок.


Кажется, сначала выполняются все задачи первого уровня (без ограничений), а затем продолжаются задачи с ограничениями.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2009

Пакет хранится в виде XML-файла .dtsx. Без ограничений объекты будут выполняться в порядке их появления в файле.

1 голос
/ 29 января 2009

Я всегда вижу, как такие вещи работают параллельно.

Таким образом, A1 и A2 будут работать, а затем B1 запустится, как только A1 будет завершена, и B2 запустится, как только будет B1.

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

...