Yes, I'm using polymorphic mappers.  It's actually only 1 row -
querying the object by id.  I have lazy=false for any referenced
objects to the one I'm querying for.

On Jun 26, 12:16 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> You have a tremendous amount of LEFT OUTER JOINS in there, and its hard to 
> tell but it seems like you're doing lots of "with_polymorphic" queries as 
> well as "lazy='joined'" styles of relationships, making for a very cumbersome 
> query.   That it returns the first result quickly (that's your 47 msec) but 
> takes a lot longer to actually return rows (thats your .15 sec) suggests it 
> returns a lot of rows.      I'd turn off all the "with_polymorphic" stuff, as 
> well as not using any "lazy='joined'" for collections, "lazy='subquery'" is a 
> better choice for collections but even then, usually better as a query time 
> option rather than a fixed mapping configuration.
>
> On Jun 26, 2011, at 10:25 AM, nospam wrote:
>
>
>
>
>
> > I'm seeing a simple get taking a considerable amount of time.
>
> > a = session.query(Annotation).get(annotation.id)
>
> > This line can take anywhere between 0.15 secs to all the way up to 1.5
> > secs ...  The query sqlalchemy produces is below.  If I execute the
> > query in pgadmin, it consistently runs in 47 msecs.
>
> > Any ideas?
>
> > It seems to run longer if I issue the 'get' right after an update and
> > another select query.  If I wait a little bit (5 secs), then it seems
> > to run closer to the 0.15 secs.
>
> > SELECT (SELECT users.username
> > FROM users
> > WHERE annotations.user_id = users.id) AS created_by, annotations.id AS
> > annotations_id, annotations.version AS annotations_version,
> > annotations.message AS annotations_message, annotations.image_filename
> > AS annotations_image_filename, annotations.user_id AS
> > annotations_user_id, annotations.camera_id AS annotations_camera_id,
> > annotations.game_id AS annotations_game_id, annotations.item_id AS
> > annotations_item_id, annotations.creation_datetime AS
> > annotations_creation_datetime, annotations.modified_datetime AS
> > annotations_modified_datetime, annotations.camera_datetime AS
> > annotations_persistent, anon_1.items_id AS anon_1_items_id,
> > anon_1.items_type AS anon_1_items_type, anon_1.items_user_id AS
> > anon_1_items_user_id, anon_1.items_game_id AS anon_1_items_game_id,
> > anon_1.people_item_id AS anon_1_people_item_id,
> > anon_1.vehicles_item_id AS anon_1_vehicles_item_id,
> > anon_1.articles_item_id AS anon_1_articles_item_id,
> > anon_1.relationships_item_id AS anon_1_relationships_item_id,
> > anon_1.relationships_lower_item_id AS
> > anon_1_relationships_lower_item_id,
> > anon_1.relationships_higher_item_id AS
> > anon_1_relationships_higher_item_id, anon_2.attributes_id AS
> > anon_2_attributes_id, anon_2.attributes_name AS
> > anon_2_attributes_name, anon_2.attributes_type AS
> > anon_2_attributes_type, anon_2.attributes_annotation_id AS
> > anon_2_attributes_annotation_id, anon_2.attributes_suspicion_level AS
> > anon_2_attributes_suspicion_level,
> > anon_2.vehicle_attributes_attributes_id AS
> > anon_2_vehicle_attributes_attributes_id,
> > anon_2.vehicle_attributes_vehicle_make AS
> > anon_2_vehicle_attributes_vehicle_model,
> > anon_2.relationship_attributes_attributes_id AS
> > anon_2_relationship_attributes_attributes_id,
> > anon_2.relationship_attributes_action AS
> > anon_2_relationship_attributes_action,
> > anon_2.police_report_attributes_attributes_id AS
> > anon_2_police_report_attributes_attributes_id,
> > anon_2.police_report_attributes_first_name AS
> > anon_2_article_attributes_attributes_id,
> > anon_2.article_attributes_stationary AS
> > anon_2.person_attributes_attributes_id AS
> > anon_2_person_attributes_attributes_id,
> > anon_2.person_attributes_eye_color AS
> > anon_2_person_attributes_eye_color,
> > anon_2.person_attributes_hair_color AS
> > anon_2_person_attributes_hair_color, anon_2.person_attributes_gender
> > AS anon_2_person_attributes_gender, anon_2.person_attributes_height AS
> > anon_2_person_attributes_height, anon_2.person_attributes_age AS
> > anon_2_person_attributes_age, anon_2.person_attributes_build AS
> > anon_2_person_attributes_build, anon_2.person_attributes_luggage AS
> > anon_2_person_attributes_luggage, anon_2.person_attributes_mobility AS
> > anon_2_person_attributes_mobility,
> > anon_2.flight_checkin_attributes_attributes_id AS
> > anon_2_flight_checkin_attributes_attributes_id,
> > anon_2.flight_checkin_attributes_airline AS
> > anon_2_flight_checkin_attributes_start_datetime_of_flight,
> > anon_2.flight_checkin_attributes_end_datetime_of_flight AS
> > anon_2_flight_checkin_attributes_end_datetime_of_flight,
> > anon_2.flight_checkin_attributes_first_name AS
> > anon_2_flight_checkin_attributes_first_name,
> > anon_2.flight_checkin_attributes_last_name AS
> > anon_2_lpr_attributes_attributes_id,
> > anon_2.lpr_attributes_start_datetime AS
> > anon_2_lpr_attributes_start_datetime,
> > anon_2.lpr_attributes_end_datetime AS
> > anon_2_lpr_attributes_end_datetime,
> > anon_2.lpr_attributes_license_plate AS
> > anon_2_lpr_attributes_license_plate, anon_2.lpr_attributes_action AS
> > anon_2_lpr_attributes_action, anon_2.lpr_attributes_station AS
> > anon_2_lpr_attributes_station,
> > anon_2.gate_boarding_attributes_attributes_id AS
> > anon_2_gate_boarding_attributes_attributes_id,
> > anon_2.gate_boarding_attributes_airline AS
> > anon_2_rmv_attributes_attributes_id, anon_2.rmv_attributes_first_name
> > AS anon_2_rmv_attributes_first_name, anon_2.rmv_attributes_last_name
> > AS anon_2_rmv_attributes_last_name, anon_2.rmv_attributes_address AS
> > anon_2_rmv_attributes_address, anon_2.rmv_attributes_min_height_feet
> > AS anon_2.rmv_attributes_min_age AS anon_2_rmv_attributes_min_age,
> > anon_2.rmv_attributes_max_age AS anon_2_rmv_attributes_max_age,
> > anon_2.rmv_attributes_eye_color AS anon_2_rmv_attributes_eye_color,
> > anon_2.rmv_attributes_gender AS anon_2_rmv_attributes_gender,
> > anon_2.rmv_attributes_license_plate AS
> > anon_2_rmv_attributes_license_plate,
> > anon_2.rmv_attributes_vehicle_color AS
> > anon_2_rmv_attributes_vehicle_color,
> > anon_2.rmv_attributes_vehicle_model AS
> > anon_2_rmv_attributes_vehicle_model,
> > anon_2.security_checkpoint_attributes_attributes_id AS
> > anon_2_security_checkpoint_attributes_attributes_id,
> > anon_2.security_checkpoint_attributes_end_datetime AS
> > anon_2_security_checkpoint_attributes_end_datetime,
> > anon_2.security_checkpoint_attributes_id_type AS
> > anon_2_security_checkpoint_attributes_id_type
> > FROM annotations LEFT OUTER JOIN (SELECT items.id AS items_id,
> > items.type AS items_type, items.user_id AS items_user_id,
> > items.game_id AS items_game_id, people.item_id AS people_item_id,
> > vehicles.item_id AS vehicles_item_id, articles.item_id AS
> > articles_item_id, relationships.item_id AS relationships_item_id,
> > relationships.lower_item_id AS relationships_lower_item_id,
> > relationships.higher_item_id AS relationships_higher_item_id
> > FROM items LEFT OUTER JOIN people ON items.id = people.item_id LEFT
> > OUTER JOIN vehicles ON items.id = vehicles.item_id LEFT OUTER JOIN
> > articles ON items.id = articles.item_id LEFT OUTER JOIN relationships
> > ON items.id = relationships.item_id) AS anon_1 ON anon_1.items_id =
> > annotations.item_id LEFT OUTER JOIN (SELECT attributes.id AS
> > attributes_id, attributes.name AS attributes_name, attributes.type AS
> > attributes_type, attributes.annotation_id AS attributes_annotation_id,
> > attributes.suspicion_level AS attributes_suspicion_level,
> > vehicle_attributes.attributes_id AS vehicle_attributes_attributes_id,
> > vehicle_attributes.vehicle_make AS vehicle_attributes_vehicle_make,
> > vehicle_attributes.vehicle_type AS vehicle_attributes_vehicle_type,
> > vehicle_attributes.vehicle_model AS vehicle_attributes_vehicle_model,
> > relationship_attributes.attributes_id AS
> > relationship_attributes_attributes_id, relationship_attributes.action
> > AS relationship_attributes_action,
> > police_report_attributes.attributes_id AS
> > police_report_attributes_attributes_id,
> > police_report_attributes.first_name AS
> > police_report_attributes_first_name,
> > police_report_attributes.last_name AS
> > police_report_attributes_last_name,
> > police_report_attributes.license_plate AS
> > police_report_attributes_license_plate,
> > police_report_attributes.location AS
> > police_report_attributes_location, police_report_attributes.summary AS
> > police_report_attributes_summary,
> > police_report_attributes.start_datetime AS
> > police_report_attributes_start_datetime,
> > police_report_attributes.end_datetime AS
> > police_report_attributes_end_datetime,
> > article_attributes.attributes_id AS article_attributes_attributes_id,
> > article_attributes.stationary AS article_attributes_stationary,
> > article_attributes.article_type AS article_attributes_article_type,
> > article_attributes.article_size AS article_attributes_article_size,
> > article_attributes.article_color AS article_attributes_article_color,
> > article_attributes.other AS article_attributes_other,
> > person_attributes.attributes_id AS person_attributes_attributes_id,
> > person_attributes.eye_color AS person_attributes_eye_color,
> > person_attributes.luggage AS person_attributes_luggage,
> > person_attributes.mobility AS person_attributes_mobility,
> > flight_checkin_attributes.attributes_id AS
> > flight_checkin_attributes_attributes_id,
> > flight_checkin_attributes.airline AS
> > flight_checkin_attributes_airline,
> > flight_checkin_attributes.start_datetime_of_checkin AS
> > flight_checkin_attributes.gate_number AS
> > flight_checkin_attributes_gate_number,
> > flight_checkin_attributes.destination AS
> > flight_checkin_attributes_destination, lpr_attributes.attributes_id AS
> > lpr_attributes_attributes_id, lpr_attributes.start_datetime AS
> > lpr_attributes_start_datetime, lpr_attributes.end_datetime AS
> > lpr_attributes_end_datetime, lpr_attributes.license_plate AS
> > lpr_attributes_license_plate, lpr_attributes.action AS
> > lpr_attributes_action, lpr_attributes.station AS
> > lpr_attributes_station, gate_boarding_attributes.attributes_id AS
> > gate_boarding_attributes_attributes_id,
> > gate_boarding_attributes.airline AS gate_boarding_attributes_airline,
> > gate_boarding_attributes.gate AS gate_boarding_attributes_gate,
> > gate_boarding_attributes.flight_number AS
> > gate_boarding_attributes_flight_number,
> > gate_boarding_attributes.first_name AS
>
> ...
>
> read more »- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to