Bonjour à tous,
J'ai une grosse lenteur sur ce genre de requête :
En gros je souhaite récupérer des infos clients qui remplissent 3 conditions (mes trois sous requêtes unies).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 SELECT CUST.CUSTID, CUST.CUSTCODE, CUST.NAME FROM CUSTOMERS CUST WHERE CUSTID IN SELECT CUSTID FROM ORDERS WHERE ... UNION SELECT CUSTID FROM XXX WHERE ... UNION SELECT CUSTID FROM YYY WHERE ...
Chaque sous requête qui récupère les identifiants sont rapide à exécuter. Mais sélectionner les infos clients sont l'identifiant est compris dans une de ces trois requêtes est très long à exécuter...
J'ai tenté, au lieu de faire une union, de faire ceci :
Mais rien à faire, c'est toujours très long
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 SELECT CUST.CUSTID, CUST.CUSTCODE, CUST.NAME FROM CUSTOMERS CUST WHERE CUSTID IN ( SELECT CUSTID FROM ORDERS ... ) OR CUSTID IN ( sous requête 2 ) OR CUSTID IN ( sous requête 3 )
Est-ce qu'il y a quelque chose de plus optimisé pour faire ce genre de sélection ?
Merci beaucoup,
A bientôt
Partager