Optimisation d'une requête
Bonjour,
j'ai réalisé une requête, je tiens à dire que je suis loin d'être un expert, contenant un UNION ALL.
Voici ce que m'a requête est censé faire :
Dans une table je souhaite récupérer les 10 premiers lignes correspondant à un type (valeur d'un champ) ainsi que les 10 premières lignes correspondant à un autre type, voici la requête que j'ai réalisé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
select *
from TABLE_A a, TABLE_B b
where a.CATEGORY_TYPE = 1
and a.TERMINAL IS NOT NULL
and a.CATEGORY <> b.VALEUR
and ROWNUM <= 10
UNION ALL
select *
from TABLE_A a, TABLE_B b
where a.CATEGORY_TYPE = 2
and a.TERMINAL IS NOT NULL
and a.CATEGORY <> b.VALEUR
and ROWNUM <= 10 |
J'ai simplifié ma requête afin de mettre en lumière le UNION ALL qui me pose problème.
Cependant après analyse je m'en rend compte que cette requête est bien trop coûteuse, et je voudrais savoir s'il y a une manière de réaliser la même chose avec des fonctions oracle. Je voudrais pouvoir me passer de UNION ALL.
N'hésitez pas à me donner des pistes et/ou à me dire s'il vous faut plus d'informations.
Mosco