Utilisation de sous-requêtes avec Direct Discovery
SUR CETTE PAGE
Utilisation de sous-requêtes avec Direct Discovery
Si la cardinalité du champ clé de jointure de la table est élevée (autrement dit, le champ contient un grand nombre de valeurs distinctes), il se peut qu'une sélection effectuée dans Qlik Sense génère une très grande instruction
Pour illustrer ce cas de figure, nous avons utilisé un exemple dans lequel une table de produits (
Nous créons un graphique utilisant le mois de la commande
Scénario 1 : cardinalité faible
Dans ce scénario, la table de produits contient un nombre réduit de produits distincts, soit 266. Si nous effectuons une sélection dans la zone
L'instruction
Scénario 2 : Utilisation de sous-requêtes
Si le même exemple contient un nombre élevé de produits distincts, par exemple 20 000, la sélection d'un filtre de dimension, tel que
La solution consiste à laisser Qlik Sense créer des sous-requêtes à la place, en définissant DirectEnableSubquery sur true. L'instruction
La taille de la clause WHERE ProductID IN ne dépend plus alors du nombre de clés résultant de la sélection.
Les limitations suivantes s'appliquent à l'utilisation de sous-requêtes :
- La syntaxe des sous-requêtes est uniquement appelée lorsque vous sélectionnez des données impliquant le filtrage d'un graphique à l'aide de données issues d'une autre table.
- C'est la quantité de données incluses dans les clés, pas le nombre de clés, qui est déterminante.
- Les sous-requêtes sont uniquement appelées lorsque toutes les tables impliquées sont en mode Direct Discovery. Si vous filtrez le graphique à l'aide de données issues d'une table incluse en mode mémoire, une clause IN sera générée.