5.
OPTIMIZACIÓN.
Se necesita
optimizar la base de datos, la arquitectura, la configuración
y el hardware. Como se mencionó en el apartado anterior, el motivo
más común de que la aplicación no sea escalable
es que no se haya afinado la base de datos. Un administrador de base
de datos es siempre una persona vital en cualquier equipo de desarrollo,
pero si no tiene ninguno, a continuación se muestra lo que puede
hacer.
Revise bien
sus Enterprise Javabeans y verifique que su base de datos no realiza
búsquedas lineales para ninguna de las consultas SQL que hay
en el código. Para hacer esto, copie el SQL del código
y, en la ventana SQL de la base de datos, ejecute una cláusula
EXPLAIN:
Explain
select * from tabla where campo = valor
Aunque la
sintaxis de EXPLAIN difiere de una base de datos a otra, siempre existe
algo similar. Después de ejecutar esta línea de código,
la base de datos le dirá si está buscando por un índice
o realizando una búsqueda lineal. Asegúrese de que cada
fragmento de SQL en la aplicación usa los índices de la
base de datos y, si no es así, cree dichos índices.
Después
de optimizar la base de datos y optimizar la configuración de
hardware (como se explicó en el apartado anterior), el siguiente
paso es optimizar el código y esto se hace con un perfilador.
Un perfilador
es un programa que analiza la aplicación mientras ésta
se ejecuta. Un perfilador provee información a la que no se podría
acceder de otra manera, como, por ejemplo:
-
Cuantos
objetos de cada clase hay en memoria y el comportamiento
del recolector de basura (garbage collector).
- Esta
información puede ayudar a identificar clases
que deberían estar en un “pool”.
- También
puede ayudar a afinar el “heap” de
Java.
-
Cuanto
tiempo la aplicación pasa en determinadas
clases.
Esta es la función más importante. El perfilador indicará qué clases
son los cuellos de botella.
Un programa
de éstos que me ayudó mucho fue Optimize-It. Optimize-It
puede usarse con cualquier programa Java o con cualquier servidor de
aplicaciones basado en Java. La configuración con Weblogic es
sencilla y Optimize-It puede usarse como perfilador de una aplicación
que se halla en un servidor remoto.
La optimización
de la arquitectura es sumamente específica para cada proyecto,
pero a continuación se incluyen algunos consejos:
-
Asegúrese
de que se han minimizado las llamadas a la red,
especialmente las llamadas a la base de datos.
- Es
mejor tener una base de datos grande que muchas pequeñas.
- Confirme
que ejbStore no almacena nada para operaciones de
sólo lectura.
- Use
objetos de detalle para obtener el estado de los
beans de entidad.
-
Asegúrese
de aprovecharse de la “cache” cuando
sea posible.
Su servidor de aplicaciones probablemente permite colocar los beans de
entidad en la “cache” de memoria. Asegúrese de que se
aprovecha de ello, ya que reducirá dramáticamente las llamadas
a la base de datos y acelerará el acceso a los datos.
-
Asegúrese
de que está usando beans de sesión
como una “fachada” de los beans de
entidad.
Puede encapsular el flujo de trabajo de un caso de uso completo en una
llamada de red a un único método de un bean de sesión
(y en una única transacción).
|