Comment SSIS décider quelle tâche suivante à exécuter si plus d'un est disponible
-
20-08-2019 - |
Question
Par exemple, si j'ajoute quatre tâches de script (blanc) A1, A2, B1 et B2, où A2 a une contrainte de courir après A1 et B2 a une contrainte de courir après B1, mais ni A1 ni B1 ont des contraintes, alors quel ordre seront les tâches non exécutées?
Quand j'essaie cela, il semble faire A1, puis B1, puis A2, B2. Mais pourquoi? Cette question par curiosité.
Edité pour ajouter:
J'ai parallélisme spécifiquement mis à 1 et boîtes de message ajouté afin que je puisse voir l'ordre qu'il prend. Il faut toujours le même ordre que je note ci-dessus, mais il était curieux de savoir s'il y avait une logique à laquelle il choisit cet ordre.
Il semble faire tout le premier niveau des tâches () sans contrainte d'abord, puis continuer avec les tâches contraintes.
La solution
Le package est stocké dans un fichier XML .dtsx. Sans contraintes, les objets seront exécutés dans l'ordre où ils apparaissent dans le fichier.
Autres conseils
Je vois toujours des choses comme cette course en parallèle.
A1 et A2 se déroulera et B1 commencera dès que A1 est fait et B2 commencera dès que B1 est fait.
Sauf si vous mettez explicitement une contrainte, il n'y a rien à arrêter à la fois de courir en même temps. Si vos tâches de script sont vraiment à court ou vous avez limité le parallélisme, ce sera peut-les exécuter dans l'ordre, mais je suis sûr que la séquence choisie est pas garantie.