Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Inner join sur deux vues non performant

1 réponse
Avatar
feyrehr
Bonjour,
Je viens de coutourner un probl=E8me, mais ne suis pas satisfait de la
m=E9thode.

J'ai deux vues.
Chacune de ces deux vues r=E9pond en moins d'une seconde.(environ 10.000
lignes chacune)
Une troisi=E8me :
SELECT champA, champB
FROM Vue1 INNER JOIN vue2 ON vue1.champA =3D vue2.champB .
La requ=EAte (select) prend 6 minutes !!
(le champB est une cl=E9 =E9trang=E8re de table, non unique)

Voici comment j'ai coutourn=E9 le probl=E8me
SELECT...
FROM Vue1 LEFT JOIN vue2 WHERE vue2.ChampB IS NOT NULL

Le r=E9sultat en 3 secondes.

Qu'en pensez-vous ?
Merci.

1 réponse

Avatar
Fred.M.
Bonjour,
- Ta version de SQL est-elle une version Enterprise ?
- Si tel est le cas, as-tu essayé de poser un index sur le champ de la vue
ChampB (avec option Schema_Binding à la création de la vue dans le cas
échéant) ?

Fred.M.

"feyrehr" a écrit :

Bonjour,
Je viens de coutourner un problème, mais ne suis pas satisfait de la
méthode.

J'ai deux vues.
Chacune de ces deux vues répond en moins d'une seconde.(environ 10.000
lignes chacune)
Une troisième :
SELECT champA, champB
FROM Vue1 INNER JOIN vue2 ON vue1.champA = vue2.champB .
La requête (select) prend 6 minutes !!
(le champB est une clé étrangère de table, non unique)

Voici comment j'ai coutourné le problème
SELECT...
FROM Vue1 LEFT JOIN vue2 WHERE vue2.ChampB IS NOT NULL

Le résultat en 3 secondes.

Qu'en pensez-vous ?
Merci.