CURSOR_SHARING

Для экономии места SGA (shared_pool) и уменьшения расходов процессорных ресурсов на разбор SQL-запросов, отличающихся только значениями констант, рекомендуется установить параметр cursor_sharing = FORCE, либо cursor_sharing = SIMILAR

alter session set cursor_sharing=exact;
alter session set events '10046 trace name context forever, level 12';

-- Трассируем процедуру P_FIN_SRZP_ITOGSVOD
begin
P_FIN_SRZP_ITOGSVOD (37576, 224967884);
end;

alter session set cursor_sharing=force;
alter session set events '10046 trace name context forever, level 12';

-- Трассируем процедуру P_FIN_SRZP_ITOGSVOD
begin
P_FIN_SRZP_ITOGSVOD (37576, 224967884);
end;

В режиме FORCE sql запрос разбирается только 1 раз.
При прочих значениях параметра сursor_sharing, можно наглядно видеть, что только один запрос находиться в shared pool. И все сессии могут использовать план этого запроса. То есть полный разбор, построение плана производится один раз, а выполняется – много раз. Следствием этого является уменьшение количества полных разборов (они превращаются в частичный). А это значит, что потребляется меньше ресурсов (процессорное время, конкуренция в библиотечном кеше, размер разделяемого пула,…), производительность растет.