Question sur alternative au minus
Bonjour, je rencontre de sérieux problèmes de performance en effectuant les requêtes suivantes :
Pour schématisé, disons que je possède deux tables :
Code:
1 2
| table1 (champs : A,B,C,X)
table2 (champs : A1,B1,C1) |
A1,B1,C1 sont des champs de clés étrangères correspondants respectivement aux champs A,B,C. J'aimerais faire les lignes dans table2 non présentes dans table1 : je fait donc un minus :
Code:
1 2 3
| select A,B,C from table1
MINUS
select A1,B1,C1 from table2 |
Pour chaque ligne j'aimerais aussi récupéré le champ X. Donc pour cela j'effectue une nouvelle requête sur le résultat de l'étape précédente :
Code:
1 2 3 4 5 6
| select X,A,B,C from table1,
(
select A,B,C from table1
MINUS
select A1,B1,C1 from table2
) ... |
Le problème et que cette étape prend plus de temps : ma requête passe de 1s à 6sec d'exécution : je voulais savoir s'il était possible de changer mon minus pour n'effectuer qu'un seul passage au lieu d'utiliser une sous-requête.
J'espère que cela était clair.
Pour info : je travailles avec une base Oracle 10g
Merci d'avance pour votre retour.