pb performance requete avec différence dates
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:
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:
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