(SSIS) J'ai une table cible qui a 32 millions d'enregistrements, et je veux juste comparer avec les nouveaux venus 32 millions d'enregistrements, dans ce qui vient de nouveaux enregistrements il peut y avoir (nouveaux enregistrements et les enregistrements mis à jour ou modifiés ainsi que les anciens enregistrements) .je souhaite comparer et insérer de nouveaux enregistrements, mettre à jour ou modifier des enregistrements et omettre les anciens enregistrements. voir j'ai utilisé lookup a pris trop de temps. alors s'il vous plaît aidez-moi à surmonter la comparaison de temps pour résoudre mon problème de performance.ssis comparant deux énormes quantités de tables de données
-1
A
Répondre
0
Si vous avez besoin de consulter les 32 millions d'enregistrements entrants à chaque fois pour voir si certains d'entre eux ont changé, la solution la plus performante consiste à remplacer tous les enregistrements existants par les nouveaux qu'ils aient été modifiés ou non .
Importez tous les 32 millions d'enregistrements dans une table temporaire, puis effectuez un changement ou un changement de nom pour faire de la table intermédiaire la nouvelle table permanente.
Cela n'a rien à voir avec SSIS. Soit effectuer des jointures, ou * ne pas * apporter des enregistrements 32M. Activez le suivi des modifications sur la base de données source et * seulement * les lignes modifiées. Sans le suivi des modifications, la comparaison prendra beaucoup de temps - même avec les index, vous * comparez * 32M lignes avec 32M lignes. –
En dehors de cela, vous ne fournissez aucune information donc on ne peut que spéculer. Les données source ont-elles une colonne 'changed' ou non? Vous pouvez l'utiliser pour lire uniquement les lignes modifiées après la dernière importation. La clé primaire est-elle incrémentale? Vous pouvez utiliser ceci pour charger uniquement les * clés * créées après la dernière importation. Vous pouvez utiliser l'une ou l'autre option pour * éviter * le chargement des enregistrements 32M. –
Une autre option consiste à effectuer les mises à jour par lots. Cela évitera de submerger tempdb et de remplir le journal des transactions. –