bonjour,
j'ai un soucis avec cette requête sql
sans la commande order by elle s’exécute en 3s
avec la commande order by 38s

et je ne trouve pas comment optimiser le cout du oder by ?

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
30
31
select 
 
L.TAXE_PORTDU as taxeportdu
 
from VW_TRANSBIS_KEYS T
INNER JOIN LIGCOMM L
ON (L.NO_LIGNE_COMMANDE=T.NLIGNECOMMANDE and L.AGENCE=T.AGENCE)
LEFT OUTER JOIN SERVICE_ADMINCLI S
ON ( T.CODECLIENT= S.CODE_CLIENT 
AND S.SERVICE_ADMIN= 'FACTUMAIL')
left outer join client cli
on T.CODECLIENT=CLI.CODE_CLIENT
LEFT OUTER JOIN PAYS PAYS
ON CLI.PAYS_CLIENT=PAYS.CODE_PAYS
left outer join VWT_DETAILTARIFC c
on(c.NO_LIGNE_COMMANDE=T.NLIGNECOMMANDE)
LEFT OUTER JOIN FACTURE F 
ON (F.NO_FACTURE = T.NFACTURECLIENT AND 
T.AGENCEFACTURECLIENT = F.CODE_AGENCE)
LEFT OUTER JOIN VW_TRANSBIS_DETFACT VF
ON (VF.NFACTURECLIENT = T.NFACTURECLIENT AND 
t.agencefactureclient = vf.agencefactureclient)
left outer join CLIENT CLI2 
on (CLI.champs6 = cli2.code_client)
LEFT OUTER JOIN PAYS PAYS2
ON CLI2.PAYS_CLIENT=PAYS2.CODE_PAYS
left outer join W_PARAM_CHAMPS WPC
on(WPC.CHAMPS_NAME='CHAMPS8'and 
WPC.TABLE_NAME='LIGCOMM' and 
WPC.CHAMPS_VALEUR=L.CHAMPS8)
order by T.NLIGNECOMMANDE