Bonjour à tous,

Voilà, je désirerai faire une vue, le problème c'est qu'elle n'accepte pas les unions (oracle 9i). Seulement, je rencontre des problèmes de performances.

Si je fais un count(*) de la requête avec l'union, elle s'effectue en moins de 0,01 sec,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT   table1.*
FROM table1,
  table2
WHERE SUBSTR(table1.code,   1,   2) = table2.subcode
 AND table1.codebase = table2.code
UNION
SELECT 
   table1.*
FROM table1
WHERE  substr(table1.code,1,2) not in ( select subcode from table2);
si je ne fais pas l'union, plus de 5 sec.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT   table1.*
FROM table1,
  table2
WHERE (SUBSTR(table1.code,   1,   2) = table2.subcode
 AND table1.codebase = table2.code)
 or substr(table1.code,1,2) not in ( select subcode from table2);
Vous allez me dire ne fais pas de count(*), mais j'ai besoin de faire un count(*) car je veux limiter l'affichage de la liste dans mon appli

Auriez vous des solutions à me suggérer?

Merci d'avance