Intente obtener parámetros nls de sus diferentes casos (programas ide o java), deben ser diferentes
select * from NLS_SESSION_PARAMETERS
Luego, dentro del procedimiento de su tienda, configure las variables para que sean iguales desde el caso más rápido.
execute immediate 'alter session set NLS_SORT=''SPANISH''';
Una vez que SP tenga todos los parámetros nls. Correrá rápido.
Recientemente encontré un caso similar en Alter session que ralentiza la consulta a través de Hibernate. pero en su caso cambiaron de parámetros y luego se ralentizaron.
Investigué y descubrí que los parámetros NLS_COMP y NLS_SORT pueden afectar la forma en que Oracle hace uso del plan de ejecución para cadenas (cuando está comparando u ordenando)
Cuando NLS_COMP se define como LINGUISTIC, utilizará el idioma definido en NLS_SORT.
por ejemplo, si NLS_COMP =LINGUISTIC y NLS_SORT=BINARI_AI su consulta es
select * from table where string_column like 'HI%'
internamente servirá
select * from table where
NLSSORT(string_column,'BINARI_AI') >= HEXTORAW('324242432')
NLSSORT(string_column,'BINARI_AI') >= HEXTORAW('675757576')
por lo tanto, si no tiene un índice para NLSSORT (columna, 'BINARI_AI'), será muy lento.
sabiendo que NLS_SORT=BINARY_AI hará que sus pedidos y comparaciones no distingan acentos ni mayúsculas y minúsculas.