lunes, 13 de junio de 2011

Parámetro db_writer_processes

Como podemos optimizar el proceso de escritura del SGA a los archivos de datos?

La respuesta la encontramos en el parámetro de base de datos db_writer_processes, quien es el que indica el número de procesos que el RDBMS de Oracle debe de levantar para escribir ta disco todos los cambios realizados en la SGA.


Gráfico de la arquitectura del Oracle Server
Como vemos en la gráfica del Oracle Server, se que el proceso Database Writer es el encargado de escribir a disco todos los cambios realizados en la SGA.

Este parámetro por defecto es 1 y el valor que se le pueda asignar va a depender de la cantidad de procesadores en el que este levantado el RDBMS de Oracle. El rango de valores que admite es de 1 a 20 para versiones de Oracle 10g y de 1 a 32 para Oracle 11g.

Para ver como esta configurado el parámetro db_writer_processes:
  • select name, value from v$parameter where name='db_writer_processes';
  • show parameter db_writer_processes;
Para cambiar el parámetro db_writer_processes:
  • alter system set db_writer_processes=valor_asignar scope=SPFILE
Nota: Al cambiar este parámetro se deberá reinicar la base de datos.
Si tu base e datos es muy transaccional entonces puedes modificar el parámetro db_writer_processes al número de procesadores que tenga el servidor en donde esta levantado el RDBMS de Oracle.

Ejemplo:
Supongamos que tenemos nuestra bas de datos en un servidor con 4 procesadores y deseamos setear el mismo número de procesos writer en nuestra base de datos.

//Seteamos en la variable de ambiente la instancia
>set oracle_sid=capacitacion

//Nos conectamos a la base como sys
>sqlplus / as sysdba

//Revisamos como esta seteado el parametro antes del cambio
SQL> show parameter db_writer_processes;
NAME                 TYPE        VALUE
-------------------- ----------- ------------------------------
db_writer_processes  integer     1


//Ateramos el parametro a 4
SQL> alter system set db_writer_processes=4 scope=SPFILE;
System altered.

//Bajamos la instancia
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

//Iniciamos la instancia
SQL> startup;
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size                  1299316 bytes
Variable Size             285215884 bytes
Database Buffers         1317011456 bytes
Redo Buffers                7086080 bytes
Database mounted.
Database opened.

//Revisamos como quedo seteado el parametro antes del cambio
SQL> show parameter db_writer_processes;
NAME                 TYPE        VALUE
-------------------- ----------- ------------------------------
db_writer_processes  integer     4

No hay comentarios:

Publicar un comentario