Bonjour

Je cherche à savoir ce qui est le plus rapide sous Oracle 9 :

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
 
select nom,prenom,sum(poids) as score from
(
select nom,prenom,10 as poids from Ecv where nom = 'A'
union all
select nom,prenom,10 as poids from Ecv where nom LIKE 'A%'
union all
select nom,prenom,10 as poids from Ecv where nom LIKE '%A%'
union all
select nom,prenom,10 as poids from Ecv where prenom = 'A'
union all
select nom,prenom,10 as poids from Ecv where prenom LIKE 'A%'
union all
select nom,prenom,10 as poids from Ecv where prennom LIKE '%A%'
)
group by nom,prenom
ou

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
 
select nom,prenom,sum(poids) as score from
(
select nom,prenom,CASE 
WHEN nom = 'A' then 10 
WHEN nom LIKE 'A%' then 10 
WHEN nom LIKE '%A%' then 10 
END as poids
from Ecv
union all
select nom,prenom,CASE 
WHEN prenom = 'A' then 10 
WHEN prenom LIKE 'A%' then 10 
WHEN prenom LIKE '%A%' then 10 
END as poids
from  Ecv
)
group by nom,prenom
Je sais bien que les resultat de calculs sont différents mais je les pondère dans ma requète normale.

Je n'arrive pas à voir de différence de temps d'execution au niveau de mon serveur bien que le plan d'execution semble privilegier le case when.