Soy un fanático de ORM - Asignación relacional de objetos y lo he usado con Rails durante el último año y medio. Antes de eso, uso para escribir consultas crudas usando JDBC y hago que la base de datos haga el trabajo pesado a través de los procedimientos almacenados. Con ORM, al principio estaba feliz de hacer cosas como coach.manager
y manager.coaches
que eran muy simples y fáciles de leer.Desventajas del mapeo relacional de objetos
Pero a medida que pasaba el tiempo, se multiplicaron las asociaciones y terminé haciendo a.b.c.d
, que fueron preguntas de disparos en todas las direcciones, detrás de las escenas. Con los rieles y el rubí, el recolector de basura se volvió loco y tomó un tiempo insensato para cargar una página muy compleja que involucra datos relativamente menores. Tuve que reemplazar este código de estilo ORM por un simple procedimiento almacenado y el resultado que vi fue enorme. Una página que tardó 50 segundos en cargarse ahora solo tarda 2 segundos.
Con esta gran diferencia, ¿debo seguir usando ORM? Está muy claro que tiene gastos indirectos severos en comparación con una consulta sin formato.
En general, ¿cuáles son los inconvenientes generales de utilizar un marco ORM como Hibernate, ActiveRecord?
¿Estás usando la recuperación perezosa? Básicamente 'ORM' carga tanto como usted lo dice ... –
@Petar Minichev: Bueno, no puedo decir una respuesta directa a eso ya que estoy haciendo todo tipo de búsquedas que ORM me permite. Hay un poco de intercambio en todos lados – bragboy