Parametros Oracle para la optimización de sistemas


A la hora de ajustar una base de datos Oracle hay que tener en cuenta múltiples parámetros. Recientemente hemos tenido que preparar una breve recopilación que incluyo.

Los parámetros recogidos a continuación son los que generalmente ayudan al sistema a funcionar mejor, pero hay que tener en cuenta de que no en todos los sistemas estos parámetros pueden funcionar tal y como se desea, e incluso su ajuste puede afectar negativamente al rendimiento del sistema.

Parámetros que afectan directamente al rendimiento.

    • sga_max_size.
      Especifica el valor máximo de SGA para la instancia, modificable a través de spfile. Siendo este un limite que no interfiere en el funcionamiento del sistema, lo recomendable es ajustarlo a lo máximo viable del sistema. Para un entorno de unos 500 usuarios en conexión dedicada, habría que ajustarlo en torno a los 2.5Gb (Siempre dependiendo de lo que necesite la aplicación)
    • sga_target.
      Especifica el tamaño total de los componentes SGA, al usarlo los siguientes parámetros se ajustan automáticamente:
      • Buffer cache (DB_CACHE_SIZE)
      • Shared pool (SHARED_POOL_SIZE)
      • Large pool (LARGE_POOL_SIZE)
      • Java pool (JAVA_POOL_SIZE)
    • lock_sga.
      Este parámetro obliga al sistema a cargar toda la sga en memoria física, por lo tanto esquivamos problemas de swap. No todos los sistemas lo soportan.
    • cursor_space_for_time.
      Este parámetro habilita la retención de cursores en el tiempo. Activar este parámetro conlleva que todos los cursores se vayan almacenando en la shared pool, esto conlleva una mayor velocidad a coste de un alto uso de la memoria del sistema, este parámetro junto con cursor_sharing = similar, puede aumentar bastante la velocidad en sistemas persistentes, a coste de un mayor uso de la memoria disponible.
    • nls_sort.
      Este parámetro define el método de ordenación a la hora de ejecutar un order by, tiene 2 posibles valores.
      • BINARY: Se toma el valor numerico de los caracteres para la ordenación. Este metodo carga menos el sistema ya que luego no tiene que reeordenar los datos.
      • Lenguaje. Orden alfabetico, depende del lenguaje que se le indique al sistema, este es el valor por defecto.
Parámetros de diagnostico:
    • Statistics_level.
      Este parámetro ajusta el nivel de recopilación de estadísticas internas en el sistema. Tiene 3 opciones distintas, hay que tener en cuenta que un nivel mayor de recogida, implica en el rendimiento del sistema.
      • Basic, muchos servicios quedan detenidos en este nivel, solo es recomendable para sistemas en que no es necesario recopilar información.
      • Typical, recoge estadísticas de la mayoría del sistema.
      • All, recoge estadísticas adicional. (SO, planes de ejecución entre otras
    • Trace_enabled.
      Se activa el registro de información cuando un error ocurre en el sistema.
Parámetros Optimizador.
    • optimizer_index_caching.
      Este parámetro ayuda a oracle a elegir el método NESTED_LOOPS haciendo que este parezca menos costoso. En aplicaciones donde se crucen constantemente tablas a través de indices, ciertamente es una mejora, ya que muchas veces no se lleva a cabo este tipo de cruce por la carga del sistema.
    • optimizer_index_cost_adj.
      Este parámetro ayuda al sistema a elegir el uso de indices en lugar de full_scan en tablas, rebajando el coste necesario para que se usen indices. Util en sistemas con querys muy complicadas.
Otro punto importante a revisar es el método de calculo de estadísticas internas de Oracle, deben calcularse tanto estadísticas en las tablas e índices, como histogramas en las columnas. Se puede comprobar si se están actualizando las estadísticas en las tablas DBA_TABLES o USER_TABLES.
Compartir
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *