Bonjour,
J'ai un problème de performance et je ne comprends pas pourquoi mais il est vrai que je ne suis pas une experte bdd alors je fais appel à vous.
J'ai créé une vue
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
create or replace view v_lignes_di as
(select id_da_ligne as id_da_ligne, da_ligne.id_da_entete as id_da_entete, 
  da_ligne.id_organisation_logistique as id_organisation_logistique, da_ligne.id_article as id_article,
  date_du_besoin as date_besoin, date_approbation as date_approbation, delai_appro as delai_appro,
  case when date_du_besoin-date_approbation < delai_appro then 'O' else 'N' end as flg_di_anticip
from
da_entete, da_ligne,
(select id_article, delai_appro, id_organisation_logistique
from article_secondaire
where id_article in(select distinct id_article
from da_entete, da_ligne
where DA_LIGNE.ID_DA_ENTETE=DA_ENTETE.ID_DA_ENTETE 
and DA_ENTETE.ID_TYPE_DOCUMENT = 19 )) temp
where 
DA_LIGNE.ID_DA_ENTETE=DA_ENTETE.ID_DA_ENTETE
and DA_ENTETE.ID_TYPE_DOCUMENT = 19
and da_ligne.id_article = temp.id_article 
and da_ligne.id_organisation_logistique = temp.id_organisation_logistique)
Quand je fais un select * je mets environ 113.5sec, si je rajoute une condition sur la date d'approbation, je mets 17.719s, tout cela est OK.
Le problème vient quand je mets une condition sur mon flag O/N
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select * from v_lignes_di
where to_char(date_approbation,'MM/YYYY') = '05/2006'
and flg_di_anticip = 'N'
Ma requete n'en fini pas!!
Pourquoi??? Merci d'avance pour toute idée