количество раз, которое запрос анализируется, полностью зависит от вызывающего приложения. Запрос будет анализироваться один раз каждый раз, когда приложение запрашивает базу данных для его анализа.
На стороне сервера, есть различные виды разбора :
HARD parse - запрос никогда не
видели раньше, не в общем
бассейн. Мы должны разобрать это, хэш,
поищите в общем пуле, не
найти его, проверить безопасность, оптимизировать
это и т. д. (много работы).
SOFT-анализ - запрос был
видел раньше, находится в общем пуле. Мы
надо разобрать, хэшировать, заглянуть в
общий пул для него и найти его
(меньше работы, чем жесткий анализ, но работа
тем не менее)
Скорее всего, в вашем случае вы создаете оператор один раз за сеанс, а затем отбрасываете его, поэтому Oracle должен каждый раз анализировать его. Тем не менее, благодаря параметризации, этот анализ является мягким, и Oracle только доходит до дорогостоящего этапа его оптимизации один раз.
Тем не менее, вы, вероятно, можете кэшировать оператор в своем приложении и использовать его повторно, чтобы (мягко) проанализировать его только один раз за сеанс.