Salut à tous,
J'ai un problème de temps de réponse dans ma requête.
Lorsqu'il n'y a qu'une seule condition (donc pas de "OR" !), c'est presque instantané, mais avec plusieurs conditions la durée de traitement augmente de manière déraisonnable (1 min pour seulement un OR). J'ai minimum un UNITE_CODE ou RESPAFF_CODE et je peux en avoir jusqu'a 20-30.
Je fais ça en vb.net, donc je pourrai à la limite répéter la requête autant de fois qu'il y a de conditions mais si je pouvais éviter ...
Je précise que je n'ai pas le droit de toucher à la base de données, juste consulter.
Merci de votre aide.
PS : c'est pas mieux avec le IN
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
32
33
34
35
36
SELECT DISTINCT ADR_INT_RDU.CUST_ID "Code Client",
				CLIENT.CLIENT_NOM "Nom Client", 
				CMPTANA.UNITE_CODE "OP", 
				ADR_INT_RDU.DESCRSHORT "Type Doc.", 
				ADR_INT_RDU.ITEM "N° de pièce", 
				ADR_INT_RDU.BUDGET_REF "CAE", 
				UPPER(RESPAFF.RESPAFF_NOM) "RA", 
				ADR_INT_RDU.ACCOUNTING_DT "Date Comptable", 
				ADR_INT_RDU.DUE_DT "Échéance", 
				ADR_INT_RDU.MONETARY_AMOUNT "Montant TTC", 
				'' "Solde", 
				ADR_STATUT_MVT.ADR_STATUT_MVT_LIB "Libelle Statut", 
				ADR_FACTURE.ADR_FACTURE_DATE_STATUT_MVT "Date Statut", 
				ADR_SOUSSTATUT.ADR_SOUSSTATUT_LIB "Lib. Sous statut", 
				'' "Éch.", 
				ADR_FACTURE_COMMS.ADR_FACTURE_COMMENTAIRE "Commentaire", 
				ADR_FACTURE_COMMS.ADR_FACTURE_COMMS_DATE "Date Comm" 
FROM GRST.ADR_INT_RDU,
	 GCST.CLIENT,
	 DGST.CMPTANA,
	 DGST.RESPAFF, 
	 GRST.ADR_FACTURE,
	 GRST.ADR_STATUT_MVT, 
	 GRST.ADR_SOUSSTATUT, 
	 GRST.ADR_FACTURE_COMMS 
WHERE ADR_INT_RDU.CUST_ID = CLIENT.CLIENT_CODE AND 
	  ADR_INT_RDU.BUDGET_REF = CMPTANA.CMPTANA_CODE  AND 
	  RESPAFF.RESPAFF_CODE = CMPTANA.RESPAFF_CODE_AFF AND 
	  SUBSTR(ADR_INT_RDU.ITEM, 7) = ADR_FACTURE.ADR_FACTURE_NUM_FACT  AND 
	  ADR_FACTURE.ADR_FACTURE_STATUT_MVT = ADR_STATUT_MVT.ADR_STATUT_MVT_CODE (+) AND 
	  ADR_FACTURE.ADR_FACTURE_RESULTAT = ADR_SOUSSTATUT.ADR_SOUSSTATUT_CODE (+) AND 
	  ADR_FACTURE.ADR_FACTURE_CODE = ADR_FACTURE_COMMS.ADR_FACTURE_CODE (+) AND 
										(RESPAFF.RESPAFF_CODE='JEMART' OR 
										 CMPTANA.UNITE_CODE ='OP0977' OR 
								         CMPTANA.UNITE_CODE ='OP0979' ) 
ORDER BY RA ASC