Paolo
2013/3/25 Niphlod <[email protected]> > I didn't get the point. .... > Q1 is slower (obviously) cause of the epoch() function and the additional > filtering > Q1 with cache shows more or less the same duration as Q2 with cache. > the key point is "even when the cache is enabled the first query is taking > longer" ... longer than what ? > Q1 with cache is speedier that: > - Q1 without cache, and that's ok > - Q2 without cache, and that's ok > but it's slower than > - Q2 with cache > however 3 ms (assuming those timings are in seconds) with all the moving > parts of a memcache instance seems unfair to blame entirely on web2py > > > > On Monday, March 25, 2013 9:48:14 AM UTC+1, Paolo valleri wrote: >> >> Dear all, I want to share with you some results. I implemented a query in >> two different ways. Given the following common code: >> start = db.record.with_alias('start_**point') >> end = db.record.with_alias('end_**point') >> elapsed_time = end.gathered_on.epoch() - start.gathered_on.epoch() >> >> The first query is (the constrain is in the query): >> rows = db( query & (elapsed_time < 86400) ).select( >> start.ALL, >> end.ALL, >> start.gathered_on.epoch(), >> end.gathered_on.epoch(), >> elapsed_time, >> orderby=start.gathered_on.**epoch(), >> left=start.on( (start.mac == end.mac) & (start.gathered_on < >> end.gathered_on)), >> cache=(cache.memcache, 3600), >> cacheable = True >> ) >> The second one is (the constrain is explicitly tested latter): >> rows = db( query ).select( >> start.ALL, >> end.ALL, >> start.gathered_on.epoch(), >> end.gathered_on.epoch(), >> elapsed_time, >> orderby=start.gathered_on.**epoch(), >> left=start.on( (start.mac == end.mac) & (start.gathered_on < >> end.gathered_on)), >> cache=(cache.memcache, 3600), >> cacheable = True >> ) >> rows2 = [r for r in rows if (r.end_point.gathered_on - >> r.start_point.gathered_on < datetime.timedelta(days=1)) ] >> >> From the timing results I got that the second query is always faster, >> with or without cache: >> Q_1: 0.273243904114 >> Q_1 with cache: 0.0182011127472 >> Q_2: 0.250607967377 >> Q_2 with cache: 0.0158171653748 >> >> Beside the fact that they are just a few milliseconds of difference and >> that all the rows satisfy the constrain, what is not clear to me is why >> even when the cache is enabled the first query is taking longer. The >> question that came to my mind is about computed columns, are they cached? >> >> Paolo >> > -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/web2py/9RfFmNQc-tE/unsubscribe?hl=en. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- --- 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.

