Altova MapForce 2024 Enterprise Edition

Afin d’améliorer l’efficacité et de réduire l’usage des ressources en matériel et en réseau, il est recommandé d’éviter d’appeler la même base de données plusieurs fois dans le même mappage. Vous pouvez être confronté à des situations dans lesquelles vous ne pouvez pas éviter d’appeler une base de données plusieurs fois en raison de la nature du mappage, mais voici quelques recommandations :

 

Si vous ne nécessitez qu’un seul appel de base de données, évitez de placer le composant de base de données dans un contexte parent qui exigerait d’appeler la base de données plusieurs fois. Cela pourrait se produire par exemple, si vous ajoutez un composant de base de données dans une fonction définie par l'utilisateur qui reçoit une séquence de valeurs en tant qu’entrée et qui reçoit donc un appel pour chaque item dans la séquence, voir aussi Fonctions définies par l'utilisateur ci-dessous. Des variables sont généralement utiles pour rassembler des données dans le même contexte avant le les passer dans le composant cible.

Si vous souhaitez rassembler des valeurs depuis une base de données (par exemple, pour compter le nombre d’enregistrements en utilisant la fonction count), il est recommandé de connecter la sortie de la fonction aggregate dans une variable où compute-when=once. Cela évite les appels répétitifs à la base de données, comme décrit dans l’Exemple: Compter les lignes de table de base de données.

Essayer d’extraire toutes les données de base de données en un appel (par exemple, une instruction SQL-SELECT, ou une procédure stockée), contrairement à l’ajout du même composant de base de données plusieurs fois dans le mappage.

Si vous souhaitez extraire des données depuis plusieurs tables ou modes depuis la même base de données, nous vous conseillons d’utiliser soit un composant Join (dans le mode SQL), soit une instruction SQL-SELECT. Ce dernier est plus pratique si vous préférez écrire l’instruction SQL SELECT vous-même. Si vous devez joindre des données de base de données à des données non-base de données, ou des données provenant de base de données différentes, utiliser des joins non-SQL. Pour optimiser l’exécution de joins non-SQL dans des mappages intenses en données, exécuter les mappages avec MapForce Server Advanced Edition.

Si vous nécessitez de filtrer des données depuis une base de données, il est plus efficace d’utiliser un composant SQL-WHERE au lieu d’un filtre standard, puisque le composant précédent a été optimisé spécifiquement pour le travail avec des bases de données, dans la grammaire de la base de données respective.

© 2018-2024 Altova GmbH