Recibo este error en una base de datos de desarrollo. Sucede en algunas consultas específicas (inserciones y eliminaciones simples a través de la aplicación .NET). La base de datos es utilizada por un usuario, y el error ocurre independientemente de cuánto tiempo estuvo funcionando la base de datos.
El único parámetro relacionado con la memoria que se establece es: MEMORY_TARGET = 1.2G
Oracle 11.2 x64 Standard Edition One Windows Server 2008 R2
La respuesta anterior es un poco vieja.
Puede aliviar el problema de inmediato pero no abordar la causa raíz. el parámetro cursor_sharing ahora toma 2 valores:
FUERZA o EXACTO. Con EXACT, su consulta tendrá que coincidir exactamente para que un cursor (sql con plan de ejecución) se reutilice, con "FORCE", todos los valores en sus consultas se cambian para enlazar variables. Esto es realmente útil cuando su aplicación no utiliza variables de enlace. La base de datos lo hará por usted.
Si ya está utilizando cursor_sharing = FORCE. Luego, debe comenzar a considerar ajustar su asignación de memoria y, dependiendo de los parámetros de memoria que use su sistema, puede obtener una idea de dónde debe establecer ese valor con las siguientes consultas:
Cuando se usan SGA_TARGET y SGA_MAX__SIZE / PGA_TARGET y PGA_MAX_SIZE (deben coincidir): seleccione * de v $ sga_target_advice; seleccione * de v $ pga_target_advice;
Se vería así: en mi caso, este es un sistema de producción previa, no se verá tan bien por mucho tiempo:
Este es el SGA_TARGET_ADVICE:
La fila donde SGA_SIZE_FACTOR es 1, es la configuración actual. En un sistema donde la memoria es insuficiente, el aumento en SGA_SIZE y SGA_SIZE_FACTOR debería mostrar una disminución dramática en ESTD_DB_TIME y ESTD_DB_TIME_FACTOR. Aumente la memoria hasta un punto en el que aumentar de nuevo ya no haga un cambio tan grande en estd_db_time.
En mi caso aquí, con mi carga actual, podría reducir fácilmente el tamaño de SGA_TARGET a 80G sin sufrir un gran golpe. Sin embargo, reducirlo a 57G y menos produciría problemas de rendimiento cada vez más dramáticos.
Cuando se utiliza MEMORY_TARGET:
fuente
Como una adición a la respuesta anterior, resulta que
ALTER SESSION SET NLS_COMP=LINGUISTIC;ALTER SESSION SET NLS_SORT=GENERIC_M_CI;
por alguna razón agota rápidamente la memoria. El problema desaparece cuando se usa otro NLS_SORT.fuente