Claro, perdón que te di un ejemplo tan básico no sabía que estabas manejando
ese volumen de datos.

Bueno quizás sea momento de que hagas un stored procedure en el motor que te
haga la query que necesitás y luego ejecutás el select_all de ese SP, acá
hay una clase de ejemplo:
http://nasir.wordpress.com/2007/12/03/stored-procedures-and-rails/

Igual yo googlearía como llamar a un SP desde Rails según el motor de base
de datos que estés usando.

saludos,
------------------------
Leonardo Gallucci
Developer at Delapalo Labs
Phone: (+54.11) 5371-3006

http://twitter.com/leonardog (@leonardog)
http://delicious.com/leonardogallucci



2010/4/7 Lean <[email protected]>

>
> On Apr 7, 2010, at 3:48 PM, [email protected] wrote:
>
> On 07/04/2010 15:44, Lean wrote:
>
> On Apr 7, 2010, at 3:28 PM, Damian Janowski wrote:
>
>
> 2010/4/7 Lean <[email protected]>:
>
> Una expresión con un :joins de la siguiente manera, no me da error, pero
>
> tampoco me da las columnas de la otra tabla...
>
>
> @hosts = Host.find(:all, :joins => [:cliente])
>
>
> No me acuerdo mucho, pero:
>
>
> @hosts = Host.find(:all, :include => [:cliente])
>
>
>
> Lamentablemente el :include da exáctamente lo mismo, ya lo había probado y
> no hay diferencia... Como si no incluyera nada...
>
>
> Gracias de todos modos.
>
>
> _______________________________________________
>
> Ruby mailing list
>
> [email protected]
>
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
> Como te han dicho por ahi... en el modelo tenes las relaciones?
>
> Y por otra parte... deberias hacer otro thread para este tema, y no como
> respuesta a un trhead ya hecho qeu no guarda relacion.
>
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
> Perdón, no entendí lo de hacer otro thread. Mi última respuesta no tiene
> relación con el subject? Me perdí...
>
> Realmente muy agradecido con todos los que respondieron y dieron consejos!
>
>
> Les cuento: Tengo los modelos mapeados según:
>
> *app/models/cliente.rb: * class Cliente < ActiveRecord::Base has_many
> :hosts end *app/models/host.rb: * class Host < ActiveRecord::Base
> belongs_to :cliente end
>
> Mis tablas no tienen más que id (PK), y los campos que menciono.
> Muy interesantes los consejos de "olvidate de SQL, trabajá con tus
> entidades", sin embargo, este problema se inició con otro problema sobre un
> modelo mucho más complejo y generó la inquietud de probar sobre algo más
> pavo. Resultó que tampoco funcionó.
>
> Les cuento el porqué de mi "capricho" con los joins: Tengo que hacer una
> búsqueda entre dos tablas: una de unos 40 millones de registros, relacionada
> vía FK con otra que tiene un millón y medio. Estas dos están relacionadas
> con 5 tablas más (bien chiquitas). Resulta que mis queries se volvieron
> complicados y -creanme- no me queda otra que utilizar los joins pero a
> través de un espantoso find_by_sql... :-(
>
> Imagínense que con este volúmen de datos, por cada registro de la tabla
> grande, rails me hace otro select para ubicar los registros en la tabla más
> chica. Ergo, una única consulta desencadena unas 40.000 consultas de un
> tirón cuando hago algo como:
>
> @hosts.map {|h| [h.cliente.nombre, h.hostname]}
>
> Quiero evitar todas esas consultas y entonces recurrí a los :joins. Probé
> con :include, probé con muchas cosas...
>
> Por supuesto, ese volúmen no aplica en un problema como Host <-> Cliente,
> pero sí en los datos de captura de logs de un grupo muy grande de servidores
> (de ahi los 40M de registros!). Por simplicidad para con la pregunta a
> ustedes, resumí mi duda a un simple problema (donde reproduje el mismo
> problema que en el caso grande!)
>
> Gracias a todos, nuevamente.
>
> Leandro.
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a