J'ai deux sources de données OLEDB qui ont des colonnes similaires :
TMP_CRUZTRANS
-------------
CUENTA_CTE numeric (20,0)
TMP_CTACTE_S_USD
----------------
CON_OPE numeric(20,0)
Je dois soustraire toutes les valeurs similaires entre ces deux tables et conserver les lignes qui sont différentes. Existe-t-il une transformation/tâche au sein de SSIS qui puisse effectuer la soustraction de toutes les valeurs similaires entre ces deux tables et conserver les lignes qui sont différentes ? NOT IN
La contrainte est normalement utilisée dans les requêtes SQL ?
Actuellement, j'effectue cette opération en utilisant Execute SQL Task
sur Control Flow
.
Le flux de données supérieur crée le premier tableau TMP_CRUZTRANS
(Fusionner la jointure entre les 2 autres tables...) Mais je suppose que ce n'est pas important pour ma question) que j'ai besoin de garder les différentes valeurs avec la deuxième table.
Dans le cadre de la Execute SQL Task
J'ai la déclaration suivante :
INSERT INTO [dbo].[TMP_CYA]
SELECT RUT_CLIE, CUENTA_CTE, MONTO_TRANSAC
FROM [dbo].[TMP_CRUZTRANS]
WHERE CUENTA_CTE NOT IN (SELECT CON_OPE FROM TMP_CTACTE_S_USD)
Enfin, avec le nouveau tableau TMP_CYA
Je peux continuer à travailler.
Le problème de cette approche est que le TMP_CRUZTRANS
a environ 5 millions de lignes, il est donc TRÈS lent d'insérer toutes ces données dans une table à l'aide de la tâche Execute SQL. Il faut environ 5 heures pour effectuer cette opération. C'est pourquoi j'ai besoin de le faire à l'intérieur de la tâche Data Flow.