Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Mejorar rendimiento Oracle
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Mejorar rendimiento Oracle

Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
hittenmitsurugui
Buen usuario


Registrado: Mar 28, 2008
Mensajes: 5

Asunto: Mejorar rendimiento Oracle Responder citando

Hola a to@s.

Os comento mi problema. Tenemos un servidor windows 2003 standard edition con 1 Gb de Ram donde instalamos un Oracle 10g. Nuestros clientes (más de 1000) se conectan a unas páginas ASP donde se manipulan registros de la Base de Datos e incluso a menudo llaman a CGIs que tenemos en el sistema.

Ya que el sistema comenzaba a ir lento hemos aumentado la RAM del servidor a 4 Gb, pero abriendo la ficha de rendimiento de Windows vemos que Oracle no se ha 'expandido' al meterle más RAM (es decir, en el sistema siguen habiendo 3 Gb libres de RAM)

Ya que somos un poco novatos con Oracle, me gustaría preguntaros qué haríais vosotros para mejorar el rendimiento de Oracle en este servidor (que use 1 o 2 Gb más de RAM por ejemplo u otra opción) de una manera sencilla si es posible.

Muchísimas gracias de antemano.
Vicent
MensajePublicado:
Mar Ene 12, 2010 10:36 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Mejorar rendimiento Oracle Responder citando



Anuncios



hittenmitsurugui escribió:
Hola a to@s.

Os comento mi problema. Tenemos un servidor windows 2003 standard edition con 1 Gb de Ram donde instalamos un Oracle 10g. Nuestros clientes (más de 1000) se conectan a unas páginas ASP donde se manipulan registros de la Base de Datos e incluso a menudo llaman a CGIs que tenemos en el sistema.

Ya que el sistema comenzaba a ir lento hemos aumentado la RAM del servidor a 4 Gb, pero abriendo la ficha de rendimiento de Windows vemos que Oracle no se ha 'expandido' al meterle más RAM (es decir, en el sistema siguen habiendo 3 Gb libres de RAM)

Ya que somos un poco novatos con Oracle, me gustaría preguntaros qué haríais vosotros para mejorar el rendimiento de Oracle en este servidor (que use 1 o 2 Gb más de RAM por ejemplo u otra opción) de una manera sencilla si es posible.

Muchísimas gracias de antemano.
Vicent


En primer lugar decirte que "mejorar el rendimiento de Oracle" puede ser todo un mundo, existen numerosos manuales de DBA sobre Tuning para Oracle. Con lo cual, lo que te indiquemos aquí no tiene por qué ser lo mejor. Pero te daremos una orientación básica.

En primer lugar, si te es posible, échale un vistazo a este artículo, donde verás algunos conceptos interesantes de Oracle, sobre su funcionamiento:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=168

En concreto, la parte interesante es la de SGA (Área global del sistema), ampliando la SGA permitirás que Oracle use más memoria RAM.

Aún así, el concepto de "ampliación de SGA" se puede complicar un poco.

Para ver las estadísticas de tu SGA actual puedes ejecutar la siguiente consulta SQL:

Código:

select name, bytes/1024/1024 MB
from v$sgastat
order by name


Te devolverá datos sobre el uso de los distintos parámetros de la SGA. Obviamente hay que tener conocimientos avanzados de DBA para entender estos datos. No te preocupes, no es indispensable.

Otra consulta muy útil para ver los valores de los parámetros que afectan a la SGA es:

Código:

show sga


Te devolverá algo así:
Total System Global Area xxx bytes
Fixed Size xxx bytes
Variable Size xxx bytes
Database Buffers xxx bytes
Redo Buffers xxx bytes


El valor interesante es "Total System Global Area". Este valor se puede ampliar mediante el parámetro: sga_max_size, de la siguiente forma (antes de hacerlo ten en cuenta que hay que detener la base de datos y TE RECOMENDAMOS que hagas copia de seguridad de los datos).

Una vez que hayas hecho copia de seguridad, te indicamos cómo ampliar el valor del parámetro sga_max_size, para que Oracle use más memoria RAM del equipo:

1. En primer lugar detendremos la base de datos con:
Código:

  shutdown immediate;


2. Iniciaremos la base de datos "sin montar", en modo "nomount", con:
Código:

  startup nomount;
 


3. Cambiaremos el valor del parámetro sga_max_size, como ejemplo indicaremos que use 2 GB de RAM, ten cuidado con este parámetro, debes dejar siempre memoria RAM libre suficiente para el sistema operativo. Por ejemplo, si tienes un equipo con 4GB de RAM, deja, cómo mínimo, 1GB para el sistema operativo. Esto dependerá del uso que le des al equipo, si es dedicado para Oracle, no habrá problema en dejar 1GB para el sistema operativo, si lo dedicas también a otras cosas (como terminal server) tendrás que ir comprobando de qué memoria RAM dispones habitualmente. Como ejemplo indicaremos que sga_max_size utilice 2GB:
Código:

alter system set sga_max_size=2G scope=spfile;


4. Pararemos e iniciaremos la base de datos para que se aplique el cambio:
Código:

  shutdown immediate;
  startup;


Tras este cambio puedes comprobar si Oracle está usando ahora más RAM en el equipo.
MensajePublicado:
Mar Abr 06, 2010 6:26 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Mejorar rendimiento Oracle Responder citando



Anuncios



Te comentamos también que existen otros dos parámetros: SGA_TARGET, WORKAREA_SIZE_POLICY que también afectan al uso de memoria.

Te explico para qué sirve cada uno:

sga_max_size: establece el tamaño máximo que puede alojar la SGA cuando se inicia la instancia de base de datos. Este parámetro permitirá aumentar el tamaño de la SGA sin necesidad de iniciar la instancia, teniendo en cuenta que el total de la SGA no exceda este parámetro.

sga_target: especifica el tamaño total para todos los componentes de la SGA. De esta forma las distintas áreas de memoria que componen la SGA son configuradas y dimensionadas automáticamente por Oracle (es parámetro está disponible a partir de la versión 10). Las distintas áreas que se configurarán automáticamente:
* Buffer cache: DB_CACHE_SIZE.
* Shared pool: SHARED_POOL_SIZE.
* Large pool: LARGE_POOL_SIZE.
* Java pool: JAVA_POOL_SIZE.

Por ejemplo, si asignamos 2GB a "sga_target" y el parámetro "workarea_size_policy" está a "AUTO", Oracle asignará automáticamente esas 2GB a las distintas áreas DB_CACHE_SIZE, SHARED_POOL_SIZE, LARGE_POOL_SIZE y JAVA_POOL_SIZE.

Con lo cual, SGA_TARGET nunca podrá ser superior al SGA_MAX_SIZE.

Para ver el valor actual de cada parámetro:

Código:

show parameter WORKAREA_SIZE_POLICY


Devolverá algo así:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy string AUTO



Normalmente y en resumen, SGA_MAX_SIZE y SGA_TARGET suelen tener el mismo valor y WORKAREA_SIZE_POLICY estar a "AUTO".

Para cambiar el valor de los parámetros (como te hemos explicado en el post anterior):

Código:

shutdown immediate;
startup nomount;
alter system set SGA_MAX_SIZE=2GB scope=SPFILE;
alter system set SGA_TARGET=2GB scope=SPFILE;
alter system set WORKAREA_SIZE_POLICY=AUTO scope=SPFILE;
shutdown immediate;
startup;


Si intentas asignar al SGA_MAX_SIZE más memoria RAM de la que dispones en el equipo Oracle te mostrará un error como este:

ORA-27102: out of memory
OSD-00022: additional error information
O/S-Error: (OS icon_cool.gif Not enough storage is available to process this command.
MensajePublicado:
Mar Abr 06, 2010 6:53 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Mejorar rendimiento Oracle Responder citando



Anuncios



De la misma forma que has aumentado el valor de los parámetros para la SGA, podrás hacerlo para la PGA. Teniendo siempre en cuenta que la suma de ambos valores (PGA y SGA) no debe superar la de la memoria RAM del equipo menos la memoria RAM que necesite el sistema operativo.

Para cambiar el parámetro de la PGA:


Código:

shutdown immediate;
startup nomount;
alter system set pga_aggregate_target = 600M SCOPE=SPFILE
shutdown immediate;
startup;


(en este ejemplo hemos asignado 600MB a la PGA).
MensajePublicado:
Mar Abr 06, 2010 8:28 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Mejorar rendimiento Oracle Responder citando



Anuncios



Más información: consultas SQL y parámetros de PGA y SGA
----------------------------------------------------------------------

select * from v$sgainfo

show parameter sga

show parameter pga
MensajePublicado:
Mar Abr 06, 2010 8:49 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Mejorar rendimiento Oracle Responder citando



Anuncios



Otra cuestión importante a tener en cuenta es de cara al sistema operativo Windows Server 2003 Standard (que no tiene que ver con Oracle) y es que, por defecto, sólo admitirá procesos de 2GB como máximo. Si estableces los parámetros de la memoria de Oracle, por ejemplo, para que use 1,5GB, tienes que tener en cuenta que las conexiones que se realicen a la base de datos sumarán más esas 1,5GB, por lo que si el proceso de Oracle al final suma más de 2GB te dará errores de conexión a la base de datos.

Para solucionar esto utiliza, en el archivo boot.ini, los parámetros PAE y 3GB, aquí tienes más información:

http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&p=3233
MensajePublicado:
Jue Oct 07, 2010 7:23 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+