Jointures de requêtes et limites de taille de complexité
La plateforme utilise une base de données relationnelle pour stocker les données. La récupération des données peut impliquer plusieurs jointures pour créer un ensemble de résultats unique. Bien que ces jointures soient généralement simples, dans certains cas, le système peut émettre de très grandes jointures pour rassembler un grand nombre (>20) de tables.
Les moteurs de base de données gèrent normalement assez bien les jointures multiples. Le modèle relationnel suppose que les jointures sont peu coûteuses et efficaces, ce qui est généralement vrai. Toutefois, il est rare que des jointures excessivement volumineuses entraînent un problème de performances de la base de données.
Pour atténuer cette complexité potentielle, utilisez la propriété suivante pour limiter la complexité et la taille des jointures.
Accédez à Propriétés système > Système et recherchez la propriété avec cette description :
Nombre maximal de jonctions de base de données par requête. Plus les valeurs sont petites, plus le système émet un plus grand nombre de requêtes moins complexes. Les valeurs plus grandes réduisent le nombre de requêtes au coût d’une complexité supplémentaire par requête. En l’absence de problèmes de base de données connus découlant d’un grand nombre de jointures, cette propriété doit rester inchangée.
Cette propriété spécifie le nombre maximal de jointures que le système préfère effectuer. Dans certains cas limites, il peut être nécessaire d’émettre des requêtes plus complexes, mais en général, il n’est pas nécessaire d’émettre plus de ce nombre de jointures. Par exemple, une valeur de 10 entraînera la jonction de 10 tables au maximum dans une requête donnée.
Le système doit compenser la diminution du nombre de jointures en émettant plus de requêtes pour récupérer les données nécessaires, de sorte que la réduction de ce nombre entraînera l’envoi d’un plus grand nombre de requêtes à la base de données. Dans la plupart des cas, le réglage de ce paramètre est contre-productif.