> SELECT rresearch.nu, rresearch.ny, rresearch.nc, rresearch.id > > FROM rresearch > WHERE (rresearch.id IS NOT NULL) > ORDER BY rresearch.nu, rresearch.ny, rresearch.nc, rresearch.id; > > 2920.90ms > > The above query is not used for the grid. Rather, it is used to generate a dropdown list for the db.isi_alt_countrynames.rsc_id field in the grid's search widget. The db.isi_alt_countrynames.rsc_id is a reference field that references db.rresearch, so it gets a default IS_IN_DB(db, 'rresearch.id', ...) validator. In forms (including the grid search widget), that validator results in a <select> widget with an option for each item in db.rresearch.id (note, you won't see the select widget unless you first click in the grid's search box and then select the "rsc_id" field). Not only does the query take a long time to run and parse, but it also takes a long time to generate the <select> widget with all the options and send the HTML to the browser.
In general, if you create a reference field that references a table with a large number of records, you should avoid the default <select> widget for that field. You can do this by putting the validator in a list, which will prevent the <select> from being created: db.isi_alt_countrynames.rsc_id.requires = [db.isi_alt_countrynames.rsc_id. requires] > > and then one query for each of the rows in the result of the previous query > like this > (taking between 0.44ms and 0.72ms each): > > > > SELECT rresearch.id, rresearch.cn, rresearch.nf, rresearch.nc, > > rresearch.nd, rresearch.nn, rresearch.ny, rresearch.np, rresearch.nu, > rresearch.nz, rresearch.uuid > FROM rresearch WHERE (rresearch.id = 642117) LIMIT 1 OFFSET 0; > > 0.50ms > I think the above queries are due to an unnecessary select in the "represent" attribute of db.rresearch.id: vars = dict(country = str(db.rresearch[id].nu)) Note, above, there is no reason to do db.rresearch[id].nu, which results in a select. Instead, just do: vars = dict(country = str(row.nu)) Anthony -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

