2010-12-01 38 views
0

J'ai actuellement 2 procédures stockées ...jeu de résultats SSIS alimentés en parallèle à la procédure stockée

retours stocké ProC# 1 une liste de produits à base d'une série de critères

stocké ProC# 2 accepte une mon produit et effectue une logique de requête complexe et écrit les résultats à une table

Mon problème est qu'il y a plus de 30 000 produits et de passer par le jeu de résultats du processus stocké # 1 un à la fois est trop lent et je peux ' t facilement intégrer un appel par lots entier dans la procédure stockée # 2

Ma question est la suivante: L'utilisation de SSIS permet de configurer une tâche qui prendrait le jeu de résultats de la procédure stockée n ° 1 et appellerait la procédure stockée n ° 2 en parallèle avec chaque ligne.

EXAMPLE of Stored Proc 1 result set 
----------------------------------- 
Product ID 
---------- 
ABC123 
XYZ987 
AAABBB 
CCCDDD 
EEEFFF 

I need to setup SSIS to call the following in parallel: 
------------------------------------------------------- 
EXEC StoredProc2 'ABC123' 
EXEC StoredProc2 'XYZ987' 
EXEC StoredProc2 'AAABBB' 
EXEC StoredProc2 'CCCDDD' 
EXEC StoredProc2 'EEEFFF' 

Répondre

1

Ouch, c'est beaucoup d'exécutions de SP # 2. Vous pouvez le faire cependant.

Créer une tâche de flux de données. Ajoutez un composant source OLE DB au flux de données. Editez le composant et configurez-le pour exécuter le SP # 1. Vous pouvez afficher les colonnes dans l'éditeur pour voir ce qui sera produit par le composant.

Ajoutez un composant de transformation de flux de données de commande OLE DB. Créez un lien du premier composant au composant de commande OLE DB. Modifiez le composant et entrez l'instruction SQL qui exécutera le SP # 2 dans la propriété SqlCommand dans l'onglet Propriétés du composant. Inclure des points d'interrogation (?) Pour chaque paramètre du SP.

Sélectionnez l'onglet Mappages de colonnes. Associez une colonne d'entrée avec chaque paramètre.

+0

merci pour la réponse! clarification rapide .... doit-il être un composant OLE DB? ou peut-il être un composant ADO.NET? –

+0

@Scott Vercuski, vous pouvez utiliser la source et les destinations ADO.NET. Toutefois, il n'existe aucune version ADO.NET de la commande OLE DB qui exécuterait SP # 2. – bobs

+0

gotcha! c'est bon ... Je vais apporter des modifications au SP # 2 pour s'exécuter sous le contexte OLE DB. Très appréciée ! –