Limitar memoria PGA por sesión
Hola.
Tengo Oracle 9.2.0.1. Como limito el uso de PGA por sesión??
Gracias y saludos
Tengo Oracle 9.2.0.1. Como limito el uso de PGA por sesión??
Gracias y saludos
Suponiento que el tipo de servidor sea dedicado (o sea, un proceso por conexión) tienes que establecer workarea_size_policy=auto en tu init.ora, y luego poner el valor máximo de ram que quieras por proceso con el parámetro pga_aggregate_target
Ten en cuenta que oracle no garantiza que no se sobrepasará el lÃmite que pongas en pga_aggregate_target, mas bien "lo intenta".
Saludos
Ten en cuenta que oracle no garantiza que no se sobrepasará el lÃmite que pongas en pga_aggregate_target, mas bien "lo intenta".
Saludos
Hola,
El tipo de servidor es dedicado. El parámetro workarea_size_policy lo tengo en auto, y en pga_aggregate_target tengo 512 MB.
Tengo entendido que este último parámetro es el valor máximo de todos los procesos del servidor adjuntos de la instancia, no el valor máximo de cada proceso.
La cuestión es que me sobrepasa con creces este valor de 512MB, ya que un solo proceso llega a necesitar 1.4 GB.
Q puedo hacer??
Gracias
El tipo de servidor es dedicado. El parámetro workarea_size_policy lo tengo en auto, y en pga_aggregate_target tengo 512 MB.
Tengo entendido que este último parámetro es el valor máximo de todos los procesos del servidor adjuntos de la instancia, no el valor máximo de cada proceso.
La cuestión es que me sobrepasa con creces este valor de 512MB, ya que un solo proceso llega a necesitar 1.4 GB.
Q puedo hacer??
Gracias
El parametro pga_aggregate_target es por sesión, si tienes dudas puedes consultarlo en la documentación de oracle en http://tahiti.oracle.com.
Con este parámetro oracle no limita el consumo de memoria, lo que hace es que cuando un proceso deja de necesitar ram, devuelve al servidor toda la que esté por encima del valor definido en pga_aggregate_target.
Lo que tienes que hacer es averiguar por qué ese proceso consume tanta memoria, puede deberse a ordenaciones muy bestias, o a que se usan tablas plsql extremadamente grandes... saca una traza de las sesiones problemáticas para encontrar la consulta o consultas que se están comiendo la ram y modifÃcalas.
Saludos
Con este parámetro oracle no limita el consumo de memoria, lo que hace es que cuando un proceso deja de necesitar ram, devuelve al servidor toda la que esté por encima del valor definido en pga_aggregate_target.
Lo que tienes que hacer es averiguar por qué ese proceso consume tanta memoria, puede deberse a ordenaciones muy bestias, o a que se usan tablas plsql extremadamente grandes... saca una traza de las sesiones problemáticas para encontrar la consulta o consultas que se están comiendo la ram y modifÃcalas.
Saludos
Hola,
Según la descripción del parámetro en la consola de oracle enterprise manager es:
Descripción: Especifica las memorias PGA agregadas de destino de
todos los procesos del servidor adjuntos a la instancia.
Defina este parámetro en un valor positivo antes de activar
la definición automática de áreas de trabajo. Esta memoria no
reside en SGA. La base de datos utiliza este parámetro como
cantidad de memoria PGA de destino que utiliza. Al definir
este parámetro, reste la SGA de la memoria total del sistema
disponible para la instancia Oracle. La memoria restante se
puede asignar a pga_aggregate_target.
Rango de Valores: Valores enteros más la letra K, M o G para especificar este lÃmite en kilobytes, megabytes o gigabytes. El valor mÃnimo es 10 M y el máximo es 4000 G
Valor por Defecto: "No Especificado", que significa que el ajuste automático de las áreas de trabajo está completamente desactivado.
El proceso que consume la memoria ya está modificado, pero yo lo que quiero es saber si hay algún modo de limitar dicho consumo para no tener que estar pendiente de las consultas de los usuarios.
Gracias por tu ayuda.
Saludos
Según la descripción del parámetro en la consola de oracle enterprise manager es:
Descripción: Especifica las memorias PGA agregadas de destino de
todos los procesos del servidor adjuntos a la instancia.
Defina este parámetro en un valor positivo antes de activar
la definición automática de áreas de trabajo. Esta memoria no
reside en SGA. La base de datos utiliza este parámetro como
cantidad de memoria PGA de destino que utiliza. Al definir
este parámetro, reste la SGA de la memoria total del sistema
disponible para la instancia Oracle. La memoria restante se
puede asignar a pga_aggregate_target.
Rango de Valores: Valores enteros más la letra K, M o G para especificar este lÃmite en kilobytes, megabytes o gigabytes. El valor mÃnimo es 10 M y el máximo es 4000 G
Valor por Defecto: "No Especificado", que significa que el ajuste automático de las áreas de trabajo está completamente desactivado.
El proceso que consume la memoria ya está modificado, pero yo lo que quiero es saber si hay algún modo de limitar dicho consumo para no tener que estar pendiente de las consultas de los usuarios.
Gracias por tu ayuda.
Saludos
