Certains clients disposent d’un accès avancé leur permettant de créer eux-mêmes des requêtes SQL sur les tables relationnelles de leur projet Dialog Insight. Ces requêtes offrent une grande flexibilité, mais doivent être conçues avec soin afin d’assurer de bonnes performances et des envois stables. Ce guide présente les bonnes pratiques à respecter lors de la création de requêtes, ainsi que les éléments à vérifier avant de soumettre une requête pour validation par l’équipe Dialog Insight.
Si vous n'avez pas accès à l'interface de création de requêtes et que vous ne maîtrisez pas le langage SQL, notre équipe peut mettre en place une requête pour vous.
Tables, structure et jointures
Favoriser des structures simples et efficaces
- Privilégier les tables d’indicateurs ou de scoring qui contiennent déjà des données agrégées. Cela permet de réduire, voire d’éviter, les jointures 1:N, souvent coûteuses en ressources.
- Limitez le nombre de jointures et évitez les chaînes complexes de tables lorsque possible.
Utiliser des jointures fiables et performantes
- Utilisez les jointures sur des champs clés (identifiants primaires ou étrangers) pour assurer l'intégrité relationnelle.
- Favorisez les identifiants numériques : les jointures sur des valeurs numériques sont beaucoup plus performantes que celles sur des chaînes de caractères.
- Évitez les multiples connexions 1:N dans une même requête : cela peut produire des doublons ou une explosion du volume de données.
Filtres et performance
Appliquer le filtrage au bon endroit
Appliquez toujours un filtre global dans la requête principale afin de limiter le volume de données traité dès le départ. Si vous appliquez un filtre sur une table spécifique, cela devrait être principalement dans un contexte de left join, lorsque l'objectif est de conserver les lignes sans correspondance.
Éviter les filtres coûteux en performance
Limitez l'utilisation des opérateurs Like et Contains, particulièrement sur de grandes tables ou des champs non indexés. Lorsque possible, privilégiez des comparaisons par égalité (=) ou des valeurs prétraitées.
Volume de données et pertinence
Réduire le volume traité
Sélectionnez uniquement les champs nécessaires à l'utilisation prévue (ciblage, personnalisation ou export).
Vérifier la pertinence temporelle des données
Assurez-vous que les données utilisées resteront pertinentes dans le temps. Par exemple, des préférences ou des statuts non mis à jour depuis longtemps peuvent devenir obsolètes. Vous pourriez appliquer des filtres temporels lorsque nécessaire (date de mise à jour, période récente).