yeah i thought the same, but fetching 1k entities that way stills
takes ~2 seconds
using following code:

def __getItems(user):
  userKey = __getUserKey(user,True)

  t0 = time.time()
  items = db.GqlQuery("SELECT * FROM Item WHERE user = :
1",userKey).fetch(1000)
  logging.debug('getting items took %s ms', 1000*(time.time()-t0))

On Jan 23, 9:31 pm, Eli Jones <eli.jo...@gmail.com> wrote:
> This isn't very surprising.. since ret = db.GqlQuery("").get() ... it is
> only fetching one result at a time.. so.. you count one.. then it has to
> fetch the next.. and you count.. and then it has to fetch another.. etc.
>
> You should probably try db.GqlQuery("").fetch(1000) instead.
>
>
>
> On Fri, Jan 22, 2010 at 10:25 AM, Romuald Brillout <rom...@gmail.com> wrote:
> > i am reading 1112 entities from the datastore which takes ~2.5
> > seconds.
>
> > i am wondering if such a running time is normal?
> > or did something went wrong?
>
> > anyways i'm quite surprized.
>
> > The code i use to retrieve the entities is folling:
>
> > class User(db.Model):
> >  user     = db.StringProperty(required=True)
> >  #settings
> >  set_fold       = db.BooleanProperty()
> >  set_inProgress = db.BooleanProperty()
> >  set_sizeSort   = db.BooleanProperty()
> >  set_negative   = db.BooleanProperty()
> >  #logs
> >  log_date_created  = db.DateTimeProperty(auto_now_add=True)
> >  log_last_visit    = db.DateTimeProperty()
> >  log_visit_counter = db.IntegerProperty()
>
> > class Item(db.Model):
> >  user        = db.ReferenceProperty(User, required=True,
> > collection_name='items')
> >  id          = db.IntegerProperty(required=True)
> >  #info
> >  type        = db.IntegerProperty(required=True)
> >  parent_id   = db.IntegerProperty()
> >  content     = db.TextProperty(required=True)
> >  size        = db.FloatProperty(required=True,default=1.5)
> >  pos         = db.IntegerProperty(required=True)
> >  pos_wanted  = db.IntegerProperty()
> >  removed     = db.BooleanProperty()
> >  selected    = db.IntegerProperty(choices=set([0,1,2])) #0,1, or 2
> >  collapsed   = db.BooleanProperty()
> >  xnor_select = db.BooleanProperty()
> >  #logs
> >  log_date_created  = db.DateTimeProperty(auto_now_add=True)
> >  log_last_selected = db.DateTimeProperty()
> >  log_touched       = db.DateTimeProperty()
>
> > def __getUserKey(user,required=False):
> >  ret = db.GqlQuery("SELECT * FROM User WHERE user = :1",user.lower
> > ()).get()
> >  if required and ret == None:
> >    raise dbException, 'user \''+user+'\' not in database\n'
> >  return ret
>
> > def __getItems(user):
> >  userKey = __getUserKey(user,True)
>
> >  t0 = time.time()
> >  n_items = 0
> >  for item in userKey.items:
> >    n_items = n_items + 1
> >  logging.debug('got %s items', n_items)
> >  logging.debug('getting items took %s ms', 1000*(time.time()-t0))
>
> > a typical output of the __getItems function:
>
> > 01-22 07:04AM 17.782 /db.js 200 3006ms 12912cpu_ms 10249api_cpu_ms 0kb
> > Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.5 (KHTML, like
> > Gecko) Chrome/4.0.249.43 Safari/532.5,gzip(gfe)
> > 129.13.72.177 - - [22/Jan/2010:07:04:20 -0800] "GET /db.js HTTP/1.1"
> > 200 340 - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.5
> > (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5,gzip(gfe)"
> > "xxx.appspot.com"
> > D 01-22 07:04AM 20.778
> > got 1112 items
> > D 01-22 07:04AM 20.779
> > getting items took 2933.76612663 ms
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to google-appeng...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com<google-appengine%2Bunsubscrib 
> > e...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

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

Reply via email to