After executing the query, the DAL processes the returned results in order to create a Rows object. That process takes longer the more fields and the more rows there are, but 40 minutes still sounds excessive for 66K rows. How long does it take if you do db.executesql(db(db.voting_center)._select()), which will run the SQL generated by the DAL but will not parse the results into a Rows object? What does your db.voting_center table definition look like? Any virtual fields (in particular, that do additional queries)?
Anthony On Thursday, July 5, 2012 5:08:01 PM UTC-4, Santiago wrote: > > Hello, > > Do you know why the same query, takes more than 40 minutes to get resolved > using DAL and less than a second using raw SQL ? > > This is the code using DAL > > db(db.voting_center).select() > > This is the code using raw SQL > > db.executesql('SELECT voting_center.id, voting_center.election, > voting_center.full_id_indra, voting_center.latitude, > voting_center.longitude, voting_center.geometry, voting_center.circuit, > voting_center.name, voting_center.identification, voting_center.cue, > voting_center.annex, voting_center.source, voting_center.external_id, > voting_center.locality, voting_center.address, voting_center.provisional, > voting_center.definitive FROM voting_center WHERE (voting_center.id > > 0);') > > electoral-dev=# select count(1) from voting_center; > count > ------- > 66442 > (1 row) > > Column | Type | > Modifiers | Storage | Description > > ----------------+------------------------+------------------------------------------------------------+----------+------------- > id | integer | not null default > nextval('voting_center_id_seq'::regclass) | plain | > election | integer | not null > | plain | > latitude | character varying(512) | > | extended | > longitude | character varying(512) | > | extended | > circuit | integer | > | plain | > identification | character varying(512) | not null > | extended | > cue | character varying(512) | > | extended | > annex | character varying(512) | > | extended | > source | character varying(512) | > | extended | > external_id | character varying(512) | > | extended | > locality | character varying(512) | > | extended | > address | character varying(512) | > | extended | > provisional | integer | > | plain | > definitive | integer | > | plain | > geometry | geometry | > | main | > name | character varying(512) | not null > | extended | > full_id_indra | character varying(12) | > | extended | > > Thanks in advance > Santiago > > On Thursday, July 5, 2012 5:08:01 PM UTC-4, Santiago wrote: > > Hello, > > Do you know why the same query, takes more than 40 minutes to get resolved > using DAL and less than a second using raw SQL ? > > This is the code using DAL > > db(db.voting_center).select() > > This is the code using raw SQL > > db.executesql('SELECT voting_center.id, voting_center.election, > voting_center.full_id_indra, voting_center.latitude, > voting_center.longitude, voting_center.geometry, voting_center.circuit, > voting_center.name, voting_center.identification, voting_center.cue, > voting_center.annex, voting_center.source, voting_center.external_id, > voting_center.locality, voting_center.address, voting_center.provisional, > voting_center.definitive FROM voting_center WHERE (voting_center.id > > 0);') > > electoral-dev=# select count(1) from voting_center; > count > ------- > 66442 > (1 row) > > Column | Type | > Modifiers | Storage | Description > > ----------------+------------------------+------------------------------------------------------------+----------+------------- > id | integer | not null default > nextval('voting_center_id_seq'::regclass) | plain | > election | integer | not null > | plain | > latitude | character varying(512) | > | extended | > longitude | character varying(512) | > | extended | > circuit | integer | > | plain | > identification | character varying(512) | not null > | extended | > cue | character varying(512) | > | extended | > annex | character varying(512) | > | extended | > source | character varying(512) | > | extended | > external_id | character varying(512) | > | extended | > locality | character varying(512) | > | extended | > address | character varying(512) | > | extended | > provisional | integer | > | plain | > definitive | integer | > | plain | > geometry | geometry | > | main | > name | character varying(512) | not null > | extended | > full_id_indra | character varying(12) | > | extended | > > Thanks in advance > Santiago > >