Hi,

I'm trying to improve the performance of the statements described below.

I'm simply trying to parse the content of a "sqlobject table" using a
select() method call without any parameters. This seems to :

[1] select * from the table (why ?)
[2] for each row select every value of the row with a distinct query

Because my table aren't really small, this takes a very long time. 

- Isn't it possible to have a behaviour like just getting the next value
of the resultset without parsing all the table before ?

Thank you for all the interesting suggestion you can have ;-)

Didrik

--------------------------------------------------------------------------
class rawdata(SQLObject):
  '''
  Class describing a generic table for agro-environmental datasets (raw
values)
  '''
   
  class sqlmeta:
          # cacheValues is needed as soons as we need transactions and
concurrent access to the database
          cacheValues = False

  mtime = DateTimeCol(notNone=True)
  station = ForeignKey('stations',notNone=True)
  tsa  = DecimalCol(size=6,precision=1,default=None)
  tha  = DecimalCol(size=6,precision=1,default=None)
  hra  = DecimalCol(size=6,precision=1,default=None)
  tsf  = DecimalCol(size=6,precision=1,default=None)
  tss  = DecimalCol(size=6,precision=1,default=None)
  ens  = DecimalCol(size=6,precision=1,default=None)
  dvt  = DecimalCol(size=6,precision=1,default=None)
  vvt  = DecimalCol(size=6,precision=1,default=None)
  plu  = DecimalCol(size=6,precision=1,default=None)

>>> for a in rawdata.select():
...     if a.id < 10:
...             print a
...
 1/Select  :  SELECT rawdata.id, rawdata.mtime, rawdata.station_id,
rawdata.tsa, rawdata.tha, rawdata.hra, rawdata.tsf, rawdata.tss,
rawdata.ens, rawdata.dvt, rawdata.vvt, rawdata.plu FROM rawdata WHERE 1
= 1
 1/QueryR  :  SELECT rawdata.id, rawdata.mtime, rawdata.station_id,
rawdata.tsa, rawdata.tha, rawdata.hra, rawdata.tsf, rawdata.tss,
rawdata.ens, rawdata.dvt, rawdata.vvt, rawdata.plu FROM rawdata WHERE 1
= 1
 1/COMMIT  :  auto
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (1)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (1)
 1/COMMIT  :  auto
<rawdata 1 mtime='datetime.datetime...)' stationID=1
tsa=1.8999999999999999 tha=1.8999999999999999 hra=99.799999999999997
tsf=-0.20000000000000001 tss=1.3999999999999999 ens=0.0 dvt=None
vvt=-999.0 plu=0.0>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (2)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (2)
 1/COMMIT  :  auto
<rawdata 2 mtime='datetime.datetime...)' stationID=1 tsa=2.0 tha=2.0
hra=99.799999999999997 tsf=-0.20000000000000001 tss=1.3999999999999999
ens=0.0 dvt=None vvt=1.3 plu=0.10000000000000001>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (3)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (3)
 1/COMMIT  :  auto
<rawdata 3 mtime='datetime.datetime...)' stationID=1
tsa=2.1000000000000001 tha=2.1000000000000001 hra=99.799999999999997
tsf=-0.20000000000000001 tss=1.3999999999999999 ens=0.0 dvt=None
vvt=1.6000000000000001 plu=0.0>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (4)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (4)
 1/COMMIT  :  auto
<rawdata 4 mtime='datetime.datetime...)' stationID=1 tsa=1.7
tha=1.6000000000000001 hra=97.900000000000006 tsf=-0.20000000000000001
tss=1.3999999999999999 ens=0.0 dvt=None vvt=1.5 plu=0.29999999999999999>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (5)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (5)
 1/COMMIT  :  auto
<rawdata 5 mtime='datetime.datetime...)' stationID=1
tsa=1.3999999999999999 tha=1.3999999999999999 hra=99.799999999999997
tsf=-0.20000000000000001 tss=1.3999999999999999 ens=0.0 dvt=None vvt=1.5
plu=0.59999999999999998>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (6)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (6)
 1/COMMIT  :  auto
<rawdata 6 mtime='datetime.datetime...)' stationID=1
tsa=1.3999999999999999 tha=1.3999999999999999 hra=99.799999999999997
tsf=-0.20000000000000001 tss=1.3999999999999999 ens=0.0 dvt=None vvt=1.5
plu=0.20000000000000001>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (7)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (7)
 1/COMMIT  :  auto
<rawdata 7 mtime='datetime.datetime...)' stationID=1 tsa=1.5 tha=1.5
hra=99.799999999999997 tsf=-0.20000000000000001 tss=1.3999999999999999
ens=0.0 dvt=None vvt=1.8999999999999999 plu=0.0>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (8)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (8)
 1/COMMIT  :  auto
<rawdata 8 mtime='datetime.datetime...)' stationID=1 tsa=1.5 tha=1.5
hra=99.799999999999997 tsf=-0.20000000000000001 tss=1.3999999999999999
ens=0.0 dvt=None vvt=1.5 plu=0.20000000000000001>
 1/QueryOne:  SELECT mtime FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT mtime FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT station_id FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT station_id FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsa FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT tsa FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tha FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT tha FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT hra FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT hra FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tsf FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT tsf FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT tss FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT tss FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT ens FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT ens FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT dvt FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT dvt FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT vvt FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT vvt FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
 1/QueryOne:  SELECT plu FROM rawdata WHERE id = (9)
 1/QueryR  :  SELECT plu FROM rawdata WHERE id = (9)
 1/COMMIT  :  auto
<rawdata 9 mtime='datetime.datetime...)' stationID=1
tsa=1.3999999999999999 tha=1.3999999999999999 hra=99.799999999999997
tsf=-0.20000000000000001 tss=1.3999999999999999 ens=0.0 dvt=None vvt=1.8
plu=0.29999999999999999>

Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to