Hola Bruno,
me alegra que surjan tantas preguntas :)


Félix Madrid escribió:

> Hola esteban,
>
> estamos migrando un sistema de OmniBase a  base de datos relacional.
>
> si bien hace 4 años que funciona asi, tuvimos problemas. Principalmente,
que cuando se tiene que recorrer muchos objetos (al momento de hacer un reporte,
por ejemplo) se hace muuy lento

Y un informe de cuantos objetos estas hablando ?
Pienso que haces una lectura sencuencial algo como: aODBTree values, y que
el tree tiene 50.000 instancias, algo asi ?
Pregunto: que tipo de informe tiene 50.000 instancias ?

Aproximadamente se generan 500 solicitudes por mes con 13 resultados tests cada una.  

Estos objetos no se pueden separar por sector o algo asi, y hacer varios
informes ?
Solo trato de tener una idea concreta de tu problema.

les cuento mas o menos el dominio del sistema, es muy simple. Existen Solicitantes (de licencias de conducir) que pueden realizar muchas Solicitudes (cada vez que quieren sacar el carnet o renovarlo) y dentro de cada solicitud, se encuentran ResultadosTests (que a su vez tienen un Test... pero bueno hasta aca nos sirve el ejemplo).
Si uno quiere realizar un informe del porcentaje de aprobacion de cada test dentro de un rango de fechas, tendria que filtrar todas las solicitudes de una fecha a otra, luego conseguir sus tests y saber si se aprobo o no (y acumular los resultados).
El solo hecho de tener que filtran por fecha, requiere que se carguen todos los objetos Solicitudes (manteniendo proxys de los clusters) y eso ya es bastante ineficiente. Probamos manteniendo un ODBTree indexado por fecha y por el nro solicitud para poder realizar la busqueda de fechas sin levantar todas las solicitudes... y ahi mejoro el asunto. Pero bueno, si se quiere filtrar por otro campo... no hay otra mas que buscar todos los objetos.

> y si no armas bien los clusters, puede ser que subas todo a memoria, jeje.
Tb vi que habian posteado algunas variantes para "optimizar" una accion
de esas carateristicas (incluso nosotros, con los ODBTrees no pudimos resolverlo
eficientemente o aceptablemente aunque sea). Este año tuve la suerte de poder
ir a la ESUG y ahi le pregunte a Gorisek sobre esta cuestion y me respondio:
> "para ese tipo de sistema, no tenes que usar OmniBase" y, luego, me mostro
su framework de mapeo objeto-relacional homemade.

Que bueno haber ido al ESUG !!!
Que tipo de sistemas es ?
Me gustaria conocer las generalidades, ya que si David Gorisek te aconsejo
eso por algo sera.
Mejor planteado el asunto seria: a que se referia con "ese tipo de sistemas"
?

con "ese tipo de sistemas" se refiere a sistemas que incluyan reportes y recorrer la mayoria de los objetos almacenados (al preguntarle le plantee solamente el ejemplo simple y claro como lo describo arriba, sin dar mas detalles).

Saludos Bruno


Saludos

Félix

Responder a