Bonsoir.

Au boulot, nous avons un souci avec une requête.

Nous stockons dans plusieurs tables une série d'évènements dont certains sont datés.

Certains d'entre eux n'ont pas de date de fin définie. Le champ vaut donc null.

Nos critères ressemblent donc à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
WHERE date_debut <= SYSDATE()
AND (date_fin IS NULL OR date_fin >= SYSDATE())
Les clients utilisent des bases Oracle 8, 9 ou 10, c'est variable.

Avec cette requête, on peut avoir des temps de traitement dépassant les 3 minutes.

Maintenant, si on alimente tous les champs date_fin qui valent NULL avec la date du 31/12/9999 (solution trouvée par notre responsable technique) et qu'on transforme la requête en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
WHERE date_debut <= SYSDATE()
AND date_fin >= SYSDATE()
La requête est quasi immédiate.

Est-ce la bonne solution ?

Si non, que faudrait-il faire ?

Merci de votre aide.