Transformation de recherche

Mis à jour : 12 décembre 2006

La transformation de recherche effectue des recherches en joignant des données de colonnes d'entrée à des colonnes d'un dataset de référence. Le dataset de référence peut être une table ou une vue existante, une nouvelle table ou le résultat d'une instruction SQL. La transformation de recherche utilise un Gestionnaire de connexions OLE DB pour se connecter à la base de données qui contient les données servant de source au dataset de référence. Pour plus d'informations, consultez Gestionnaire de connexions OLE DB

Vous pouvez configurer la transformation de recherche comme suit :

  • Spécifiez la table ou la vue qui contient le dataset de référence.
  • Générez une table de référence en spécifiant une instruction SQL.
  • Définissez des jointures entre l'entrée et le dataset de référence.
  • Ajoutez des colonnes du dataset de référence à la sortie de la transformation.
  • À l'aide d'une instruction SQL de mise en cache, indiquez si tout ou partie du dataset de référence doit être mis en cache pour améliorer les performances.
  • Mappez les paramètres d'une instruction SQL mise en cache avec les colonnes d'entrée.
  • Spécifiez la quantité de mégaoctets de mémoire disponibles pour la transformation dans les environnements 32 bits et 64 bits. L'environnement 32 bits impose une limite de 3 072 mégaoctets, contrairement à l'environnement 64.

La transformation de recherche réalise une équi-jointure entre les valeurs de l'entrée de la transformation et celles du dataset de référence. L'utilisation d'une équi-jointure signifie que chaque ligne de l'entrée de la transformation doit correspondre à au moins une ligne du dataset de référence. En l'absence d'entrée correspondante dans le dataset de référence, aucune jointure n'est réalisée et aucune valeur n'est renvoyée depuis celui-ci. Il s'agit d'une erreur, qui aboutit à l'échec de la transformation sauf si celle-ci est configurée de manière à ignorer les erreurs ou à rediriger les lignes d'erreur vers la sortie d'erreur. En présence de plusieurs correspondances dans la table de référence, la recherche retourne uniquement la première correspondance basée sur la requête de recherche. Si plusieurs correspondances sont trouvées, aucune erreur ou aucun avertissement n'est généré sauf si une transformation de recherche est configurée pour utiliser la mise en cache préalable complète. Si la mise en cache préalable complète est utilisée, un avertissement est généré lorsque plusieurs correspondances sont détectées lors du remplissage de la mémoire cache.

La jointure peut être une jointure composite, auquel cas vous pouvez joindre plusieurs colonnes de l'entrée de la transformation à des colonnes du dataset de référence. La transformation prend en charge les colonnes de jointure de n'importe quel type de données, à l'exception des types DT_R4, DT_R8, DT_TEXT, DT_NTEXT ou DT_IMAGE. Pour plus d'informations, consultez Types de données d'Integration Services.

En règle générale, les valeurs du dataset de référence sont ajoutées à la sortie de la transformation. Par exemple, la transformation de recherche peut extraire un nom de produit d'une table à l'aide d'une valeur d'une colonne d'entrée, puis l'ajouter à la sortie de la transformation. Les valeurs de la table de référence peuvent remplacer des valeurs de colonne ou être ajoutées à de nouvelles colonnes.

Les recherches effectuées par la transformation de recherche respectent la casse. Pour éviter les recherches infructueuses dues aux différences de casse dans les données, convertissez celles-ci en caractères majuscules ou minuscules à l'aide de la transformation de table de caractères, puis insérez la fonction UPPER ou LOWER dans l'instruction SQL qui génère la table de référence. Pour plus d'informations, consultez Transformation de la table de caractères, UPPER (Transact-SQL) et LOWER (Transact-SQL).

Pour éviter les échecs de recherche, vous pouvez également ne pas utiliser de mise en cache et lire les données depuis une base de données ne respectant pas la casse.

Cette transformation a une entrée, une sortie standard et une sortie d'erreur.

Types de mise en cache

Les options d'allocation de mémoire pour un dataset de référence sont les suivantes :

  • Mise en cache préalable complète ; dans cette option, la totalité du dataset de référence est lue avant que l'entrée soit traitée. Ceci est le type de mise en cache par défaut. Pour configurer une transformation de recherche pour qu'elle utilise la mise en cache préalable complète, assurez-vous que toutes les options sont désactivées sous l'onglet Avancé de l'Éditeur de transformation de recherche.
  • Mise en cache partielle ; dans cette option, la transformation de recherche spécifie la taille du cache chargé avec les données de référence. Cette option est disponible seulement avec les connexions qui prennent en charge les accès par clé. Pour configurer une transformation de recherche pour qu'elle utilise la mise en cache partielle, sous l'onglet Avancé de l'Éditeur de transformation de recherche, sélectionnez l'option Activer la restriction de la mémoire, puis l'option Activer la mise en cache ou Modifier l'instruction SQL, ou les deux options Activer la mise en cache et Modifier l'instruction SQL .
  • Aucune mise en cache ; dans cette option, chaque ligne de l'ensemble de lignes accède à l'ensemble du dataset. Pour configurer une transformation de recherche pour qu'elle n'utilise aucune mise en cache, sous l'onglet Avancé de l'Éditeur de transformation de recherche, sélectionnez l'option Activer la restriction de la mémoire et désactivez toutes les autres options.

Pour plus d'informations sur l'onglet Avancé, consultez Éditeur de transformation de recherche (onglet Avancé)..

Une transformation de recherche configurée pour utiliser une mise en cache partielle, ou pour ne recourir à aucune mise en cache, échoue si une opération de recherche trouve des colonnes qui contiennent des valeurs NULL, sauf si vous mettez à jour manuellement l'instruction SQL en y incluant une condition OR ISNULL(NomColonne). Si vous utilisez la mise en cache préalable complète, l'opération de recherche réussit.

ms141821.note(fr-fr,SQL.90).gifRemarque :
Si possible, dans les opérations de recherche, évitez d'utiliser des colonnes susceptibles de contenir des valeurs NULL. Si une colonne contient des valeurs NULL, configurez la transformation de recherche de manière à utiliser une sortie d'erreur qui dirige vers une sortie de transformation distincte les lignes auxquelles ne correspond aucune ligne dans la table de référence. Une autre solution peut consister à utiliser la mise en cache complète, qui prend en charge les opérations de recherche sur les valeurs NULL.

Integration Services et SQL Server diffèrent par leur manière de comparer les chaînes. Si la transformation de recherche est configurée de manière à utiliser la mise en cache préalable complète, Integration Services procède à la comparaison de correspondances dans le cache ; sinon, l'opération de recherche utilise une instruction SQL paramétrée et SQL Server effectue la comparaison de correspondances. Cela signifie que la transformation de recherche peut retourner un nombre différent de correspondances à partir de la même table de recherche, selon le type de cache.

Instruction SQL de mise en cache

Vous pouvez configurer la transformation de recherche de manière à ce qu'elle utilise une instruction SQL de mise en cache. L'instruction SQL peut sélectionner un sous-ensemble du dataset de référence, en limitant sa taille. Le recours à une instruction de mise en cache limite la quantité de mémoire utilisée par le dataset de référence si celui-ci est très volumineux.

La clause WHERE de l'instruction SQL de mise en cache peut contenir des valeurs ou des paramètres. Les paramètres sont mappés avec les colonnes d'entrée et mis à jour à partir des valeurs de celles-ci au moment de l'exécution.

Résolution des problèmes liés à la transformation de recherche

À partir de Microsoft SQL Server 2005 Service Pack 2 (SP2), vous avez la possibilité de consigner les appels que la transformation de recherche OLE DB effectue auprès de fournisseurs de données externes. Vous pouvez utiliser cette nouvelle fonctionnalité de journalisation pour résoudre des problèmes liés au remplissage du cache qu'exécute la transformation de recherche depuis des sources de données externes. Pour journaliser les appels que la transformation de recherche adresse à un fournisseur de données externes, activez la journalisation des packages et sélectionnez l'événement Diagnostic au niveau du package. Pour plus d'informations, consultez Dépannage de l'exécution des packages.

Configuration de la transformation de recherche

Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.

Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue Éditeur de transformation de recherche, cliquez sur l'une des rubriques suivantes :

La boîte de dialogue Éditeur avancé reflète les propriétés qui peuvent être définies par programme. Pour plus d'informations sur les propriétés définissables dans la boîte de dialogue Éditeur avancé ou par programme, cliquez sur l'une des rubriques suivantes :

Pour plus d'informations sur la définition des propriétés, cliquez sur l'une des rubriques suivantes :

Voir aussi

Concepts

Transformation de recherche floue
Transformation de recherche de terme
Création du flux de données d'un package
Transformations Integration Services

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

12 décembre 2006

Nouveau contenu :
  • Des informations ont été ajoutées sur la manière d'utiliser l'interface utilisateur pour activer différents types de caches.
  • Ajout d'informations sur la manière dont SQL Server 2005 SP2 inclut de nouveaux messages de journalisation avec lesquels les utilisateurs peuvent résoudre les appels qu'effectue la transformation auprès de fournisseurs de données externes.

14 avril 2006

Nouveau contenu :
  • Description de la possibilité de spécifier les tailles de cache pour les environnements 32 bits et 64 bits.
  • Ajout d'informations sur les effets de l'utilisation de différents types de cache.

5 décembre 2005

Contenu modifié :
  • Clarification du comportement de la correspondance.