Table des matières

Search

  1. Préface
  2. Présentation du réglage des performances
  3. Optimisation de cible
  4. Optimisation de source
  5. Optimisation de transformation
  6. Optimisation du mappage
  7. Méthodes d'optimisation
  8. Optimisation du temps d'exécution
  9. Optimisation du service de données SQL
  10. Optimisation du service Web
  11. Optimisation des connexions

Guide de réglage des performances

Guide de réglage des performances

Optimisation de la transformation Recherche

Optimisation de la transformation Recherche

Les transformations Recherche peuvent ralentir les performances en fonction du type de cache de recherche et des conditions de recherche.
Envisagez les solutions suivantes pour les goulots d'étranglement de transformation Recherche :
Utilisez le pilote de base de données optimal.
Le Data Integration Service peut se connecter à une table de recherche à l'aide d'un pilote de base de données natif ou d'un pilote ODBC. Les pilotes de base de données natifs fournissent de meilleures performances de mappage que les pilotes ODBC.
Mettez en cache les tables de recherche.
Si un mappage contient des transformations Recherche, vous pouvez souhaiter activer la mise en cache de recherche. Lorsque vous activez la mise en cache, le Data Integration Service met en cache la table de recherche et interroge le cache de recherche pendant le mappage. Lorsque cette option n'est pas activée, le Data Integration Service interroge la table de recherche ligne par ligne.
Le résultat de la requête de recherche et le traitement sont les mêmes, que vous mettiez la table de recherche en cache ou non. Cependant, l'utilisation d'un cache de recherche peut augmenter les performances de mappage pour des tables de recherche plus petites. Généralement, vous souhaitez mettre en cache des tables de recherche qui nécessitent moins de 300 Mo.
Utilisez le type de cache approprié.
Utilisez les types de cache suivants pour augmenter les performances :
  • Cache partagé. Vous pouvez partager le cache de recherche entre plusieurs transformations. Vous pouvez partager un cache non nommé entre des transformations dans le même mappage. Vous pouvez partager un cache nommé entre des transformations dans le même mappage ou dans des mappages différents.
  • Cache persistant. Pour enregistrer et réutiliser les fichiers de cache, vous pouvez configurer la transformation pour qu'elle utilise un cache persistant. Utilisez cette fonctionnalité lorsque vous savez que la table de recherche ne change pas entre les exécutions du mappage. L'utilisation d'un cache persistant peut améliorer les performances car le Data Integration Service construit le cache mémoire à partir des fichiers cache au lieu de la base de données.
Activez les caches simultanés.
Lorsque le Data Integration Service traite des mappages contenant des transformations Recherche, il construit un cache dans la mémoire lorsqu'il traite la première ligne de données dans une transformation Recherche mise en cache. S'il y a plusieurs transformations Recherche dans un mappage, le Data Integration Service crée les caches de manière séquentielle lorsque la première ligne de données est traitée par la transformation Recherche. Cela ralentit le traitement de la transformation Recherche.
Vous pouvez activer des caches simultanés pour améliorer les performances. Lorsque le nombre de pipelines simultanés supplémentaires est défini sur un ou plus, le Data Integration Service construit des caches simultanément plutôt que de manière séquentielle. Les performances augmentent considérablement lorsque les mappages contiennent plusieurs transformations actives pouvant prendre du temps, telles que les transformations Agrégation, Jointure ou Trieur. Lorsque vous activez plusieurs pipelines simultanés, le Data Integration Service n'attend plus que des mappages actifs se terminent avant de créer le cache. D'autres transformations Recherche dans le pipeline construisent également des caches simultanément.
Optimisez les correspondances de la condition de recherche.
Lorsque la transformation Recherche correspond à des données de cache de recherche avec la condition de recherche, elle trie et ordonne les données pour déterminer la première et la dernière valeurs correspondantes. Vous pouvez configurer la transformation pour qu'elle renvoie n'importe quelle valeur correspondant à la condition de recherche. Lorsque vous configurez la transformation Recherche pour qu'elle renvoie n'importe quelle valeur correspondante, elle renvoie la première valeur correspondant à la condition de recherche. Elle n'indexe pas tous les ports comme lorsque vous la configurez pour qu'elle renvoie la première ou la dernière valeur correspondante.
Lorsque vous utilisez n'importe quelle valeur correspondante, les performances peuvent s'améliorer car la transformation n'indexe pas tous les ports, ce qui peut ralentir les performances.
Réduisez le nombre de lignes mises en cache.
Vous pouvez réduire le nombre de lignes inclues dans le cache pour augmenter les performances. Utilisez l'option de remplacement SQL de recherche pour ajouter une clause WHERE à l'instruction SQL par défaut. Lorsque vous ajoutez une clause WHERE à une transformation recherche qui utilise un cache dynamique, utilisez une transformation filtre avant la transformation recherche pour passer des lignes dans le cache dynamique qui correspondent à la clause WHERE.
Remplacez l'instruction ORDER BY.
Par défaut, le Data Integration Service génère une instruction ORDER BY pour une recherche mise en cache. L'instruction ORDER BY contient tous les ports de recherche. Pour augmenter les performances, supprimez l'instruction ORDER BY par défaut et saisissez un remplacement ORDER BY avec moins de colonnes.
Le Data Integration Service génère toujours une instruction ORDER BY, même si vous en saisissez une dans le remplacement. Placez deux tirets « -- » après le remplacement ORDER BY pour supprimer l'instruction ORDER BY générée.
Par exemple, une transformation Recherche utilise la condition de recherche suivante :
ITEM_ID = IN_ITEM_ID PRICE <= IN_PRICE
La transformation Recherche comporte trois ports de recherche utilisés dans le mappage, ITEM_ID, ITEM_NAME et PRICE. Lorsque vous saisissez l'instruction ORDER BY, saisissez les colonnes dans le même ordre que les ports dans la condition de recherche. Vous devez également entourer tous les mots réservés de la base de données par des guillemets.
Saisissez la requête de recherche suivante dans le remplacement SQL de recherche :
SELECT ITEMS_DIM.ITEM_NAME, ITEMS_DIM.PRICE, ITEMS_DIM.ITEM_ID FROM ITEMS_DIM ORDER BY ITEMS_DIM.ITEM_ID, ITEMS_DIM.PRICE --
Utilisez une machine avec plus de mémoire.
Pour augmenter les performances de mappage, exécutez le mappage sur un nœud de Data Integration Service avec une grande quantité de mémoire. Augmentez les tailles d'index et de cache de données le plus possible sans fatiguer la machine. Si le nœud du Data Integration Service a assez de mémoire, augmentez le cache pour qu'il puisse contenir toutes les données en mémoire sans paginer sur le disque.
Optimisez la condition de recherche.
Si vous incluez plusieurs conditions de recherche, placez les conditions dans l'ordre suivant pour optimiser les performances de recherche :
  • Égal à (=)
  • Inférieur à (<), supérieur à (>), inférieur ou égal à (<=), supérieur ou égale à (>=)
  • Différent de (!=)
Filtrez les lignes de recherche.
Pour améliorer les performances, créez une condition de filtre pour réduire le nombre de lignes de recherche récupérées à partir de la source lorsque le cache de recherche est construit.
Indexez la table de recherche.
Le Data Integration Service doit interroger, trier et comparer des valeurs dans les colonnes de la condition de recherche. L'index doit inclure chaque colonne utilisée dans une condition de recherche.
Vous pouvez améliorer les performances pour les types de recherches suivants :
  • Recherches mises en cache. Pour améliorer les performances, indexez les colonnes dans l'instruction ORDER BY de recherche. Le fichier journal de mappage contient l'instruction ORDER BY.
  • Recherches non mises en cache. Pour améliorer les performances, indexez les colonnes dans la condition de recherche. Le Data Integration Service émet une instruction SELECT pour chaque ligne transmise à la transformation Recherche.
Optimisez plusieurs recherches.
Si un mappage contient plusieurs recherches, même avec la mise en cache activée et un tas mémoire suffisant, les recherches peuvent diminuer les performances. Réglez les transformations Recherche qui interrogent la plus grande quantité de données pour qu'elles améliorent les performances globales.
Si la table de recherche est sur la même base de données que la table source dans votre mappage, et que la mise en cache est impossible, joignez les tables dans la base de données source au lieu d'utiliser une transformation Recherche.