2009-10-22 19 views
0

Je travaille sur une solution SSIS pour datawarehouse pour extraire les clés de substitution des clés d'application correspondantes, j'utilise la tâche de recherche de SSIS, mais le problème avec cette tâche est qu'il met en cache la table de consultation complète dans sa mémoire. Et la taille de ma table de consultation est énorme, c'est-à-dire 20 millions de disques. Donc, si vous pouvez suggérer des moyens ou des alternatives pour la tâche de rechercheAlternative pour la tâche de recherche dans SSIS

Répondre

0

Faites un LEFT JOIN avec vos données de recherche lorsque vous apportez les données dans le package SSIS, puis évaluez ce dont vous avez besoin.

Si la table de recherche est dans une source différente, vous pouvez faire un LEFT JOIN dans SSIS, mais cela va également mettre en cache des lignes. Je pense que le JOIN peut être légèrement plus rapide qu'un Lookup.

+0

mais le problème est la table de recherche est dans une source différente et la mise en cache de l'exécution de la table pour une telle grande table semble être une option payante – paranjai

0

Faut-il scanner la totalité de la table? C'est à dire. pouvez-vous spécifier votre recherche en tant que vue de base de données sur la table, ou même la spécifier comme résultat d'une requête SQL (Utiliser les résultats d'une requête SQL)

1

Je ne considère pas une table avec 20 millions d'enregistrements trop grande pour Chercher. Vous pouvez faire un peu de filtrage et en sélectionnant uniquement les colonnes requises dans la recherche, vous pouvez l'optimiser pour utiliser une petite quantité de mémoire. Par exemple, si vous avez une colonne clé de type int et une colonne varchar de taille 10 nécessaire pour la recherche, un enregistrement prendra 4 + 10 octets et 20millions vont à 20Mx (4 + 10) ~ = 280MB qui ne peut pas être considéré comme trop élevé. Toujours si vous voulez réduire l'utilisation de la mémoire, vous devrez utiliser des jointures.

0

Assurez-vous de ne sélectionner que les colonnes dont vous avez besoin dans la table de correspondance, ne mettez pas en cache les colonnes inutiles. Trouvez un peu de temps pour jeter un oeil à MS "Project "Real" qui utilise SSIS dans les applications à haut volume de données et discute des meilleures pratiques.

Questions connexes