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
État des lieux de la réponse à incident de cybersécurité
Les experts de Palo Alto Networks, Unit 42 et Forrester Research livrent dans ce webinaire exclusif leurs éclairages et stratégies en matière de réponses aux incidents. Bénéficiez d'un panorama complet du paysage actuel de la réponse aux incidents et de sa relation avec la continuité de l'activité, des défis auxquels font face les entreprises et des tendances majeures qui modèlent ce domaine. Un état des lieux précieux pour les décideurs et professionnels IT.