Bonjour à tous.
J'ai fait un explain sur une requête sous Oracle et sous Postgre (la même traduite suivant que j'utilise Oracle ou PostgreSQL) que je vous donne (version Postgre):
Et là, je constate une chose bizarre. Sous Oracle, il y a l'utilisation d'un index sur dossieretat alors qu'il n'est pas utilisé sous PostgreSQL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Select count(*) From ( Select D."ID_DOSSIER", "NOMDOSSIER" From ddc_appia."DOSSIER" D left outer join ddc_appia."DOSSIERETAT" DE on D."ID_DOSSIER" = DE."ID_DOSSIER" Where (DE."ID_ETAT" = 2 or DE."ID_ETAT" is null) ) x ;
Je me suis dit que si il était utilisé sous Oracle et que les deux requêtes étaient identiques alors PostgreSQL devrait l'utiliser également. Non?
Je ne sais pas comment le faire pour lui faire utiliser cet index. Y a t il un moyen de le forcer à l'utiliser ou de lui rappeller qu'il existe un index qu'il pourrait accessoirement utiliser?
Merci d'avance de me répondre.
champijulie.
Partager