ppazos / yupp

Automatically exported from code.google.com/p/yupp
0 stars 0 forks source link

Optimizacion de carga para findBy #102

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Pasa que al pedir a findBy por una condicion, se hace una consulta por la 
condicion para obtener el id, y luego por el id para obtener el objeto, pero la 
primer consulta ya cargó todos los datos necesarios para crear la instancias 
de la clase en memoria y la segunda consulta no parece necesaria, por ejemplo:

Consulta:

$tableName = YuppConventions::tableName( 'PageZone' );
$condition = Condition::_AND()
               ->add( Condition::EQ($tableName, 'page_id', $pageId) )
               ->add( Condition::EQ($tableName, 'name', $name) );
$list = PageZone::findBy( $condition, new ArrayObject() );

Log: (ver las 2 consultas SQL)

[DAL::listAll cms_page_zone]
[DatabaseMySQL::query : SELECT * FROM cms_page_zone WHERE 
(cms_page_zone.class='PageZone' AND cms_page_zone.deleted=0 AND 
(cms_page_zone.page_id=1 AND cms_page_zone.name='content')) ORDER BY id asc 
LIMIT 50 OFFSET 0]
[ArtifactHolder.existsModel PageZone 3]
[ArtifactHolder.getModel PageZone 3]
[PersistentManager.get_object PageZone 3]
[DatabaseMySQL::query : SELECT * FROM cms_page_zone WHERE id=3]
[PersistentManager.createObjectFromData PageZone]
[ArtifactHolder.addModel PageZone]

Original issue reported on code.google.com by pablo.swp@gmail.com on 10 May 2011 at 12:53

GoogleCodeExporter commented 8 years ago
Esto está resuelto en PersistentManager.listAll

Original comment by pablo.swp@gmail.com on 22 Jul 2013 at 2:12