Des performances d'Oracle à l'aide de fonctions dans la clause where

Dans une procédure stockée (qui a une date de paramètre nommé "paramDate' ) j'ai une requête comme celle -

select id, name
from customer
where period_aded = to_char(paramDate,'mm/yyyy')

va Oracle convertir paramDate à la chaîne pour chaque ligne?

J'étais sûr que l'Oracle n'est pas, mais on m'a dit que Oracle.
En fait je pensais que si le paramètre de la fonction contrainte (pas eu un fierld ni une valeur calculée à l'intérieur de la requête), le résultat doit être toujours le même, et c'est pourquoi Oracle doit effectuer cette conversion qu'une seule fois.
Puis j'ai réalisé que j'ai parfois exécutés DML phrases dans plusieurs fonctions, et peut-être cela pourrait causer de la valeur qui en résulte pour le changement, même si elle ne change pas pour chaque ligne.

Cela signifie que je dois convertir ces valeurs avant de m'ajouter à la requête.

De toute façon, peut-être bien connues des fonctions (intégré) sont évaluées une fois, ou même mes fonctions de l'être également.

De toute façon, encore une fois...

Va oracle exécuter que to_char une fois ou va Oracle de le faire pour chaque ligne?

Merci pour vos réponses

Profil de la requête et à voir.

OriginalL'auteur Nicolás | 2009-07-13