J'ai récemment rencontré cette logique de jointure dans une
requête :
Field Test Field
A.CONO35 EQ B.CONO35
B.CONO35 EQ CONO60
CONO60 EQ A.CONO35
A.PNUM35 EQ B.PNUM35
B.PNUM35 EQ PNUM60
PNUM60 EQ A.PNUM35
Elle fonctionne, mais la logique de jointure suivante est
meilleure - et elle s'est exécutée en
deux secondes environ au
lieu de six :
Field Test Field
A.CONO35 EQ B.CONO35
A.CONO35 EQ CONO60
A.PNUM35 EQ B.PNUM35
A.PNUM35 EQ PNUM60
Pourquoi la seconde logique de jointure est-elle meilleure ?
Bien que Query Optimizer s’améliore à chaque release, il faut
quand même l’aider quelque peu. La première version comportait
des jointures inutiles, qui ne sont pas spécifiées efficacement
(dont un chemin de jointure circulaire de A vers B, B
vers C, C vers A).
En règle générale, il faut employer une jointure en utilisant des
champs spécifiés dans un chemin d’accès (ou fichier logique)
dans l’ordre des champs spécifiés et joindre au premier fichier
chaque fois que possible. Voilà quelques années, j’ai appliqué
ces règles à la requête d’un utilisateur et j’ai ainsi réduit le
temps d’exécution de plus de cinq heures à 40 minutes. Cette
règle s’applique non seulement au Query Optimizer mais aussi
aux requêtes SQL, SQL imbriqué et QM (Query Management),
car toutes utilisent les mêmes programmes système sous-jacents.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique