Hi Ikai, is there a measure to say the entities are large? is it about the number of columns or blob or text? if so in my entities I have string and number properties only.
Yes. I need all the 2000 (some times bit more) entities at once for reporting. Currently I'm not seeing a way where I can split the keys and fetch. On Mar 21, 11:54 pm, "Ikai Lan (Google)" <ika...@google.com> wrote: > If that's the performance, then I'm inclined to say the entities are large > and that's about the performance you can expect. One more thing to keep in > mind: the cost of deserializing each entity is non-trivial. > > Is there a reason you need all 2000 entities? Perhaps there is a different > way to accomplish what you want without querying a (relatively) large number > of entities at once. > > One other possible solution that will at least make your user facing code > run faster is to split the query up by key, perform multiple async queries > and join them at the end. It'll still consume the same (or more) CPU time, > but the user ms should be lower since you are doing things in parallel. The > tradeoff here, of course, is that you'd need to know how you can split up > the keyspace. > > Ikai Lan > Developer Programs Engineer, Google App Engine > Blog:http://googleappengine.blogspot.com > Twitter:http://twitter.com/app_engine > Reddit:http://www.reddit.com/r/appengine > > > > > > > > On Mon, Mar 21, 2011 at 12:17 AM, adhi <adhinaraya...@gmail.com> wrote: > > q = db.Query(PrimaryData) > > q.filter('SheetMetadataId', metadata.getSheetId()) > > return q.fetch(2000) > > > Hi Ikai, even the above query takes 3.3 ~ 3.6 seconds. The number of > > entities returned by the query is 1261. > > I'm using Expando model, the total number columns for this particular > > set of entities are 25. > > Yes. I've created composite index. Here is the index definition. > > > - kind: PrimaryData > > properties: > > - name: SheetMetadataId > > - name: InstanceAssignedTo > > > please let me know if you need more information. > > > On Mar 17, 11:50 pm, "Ikai Lan (Google)" <ika...@google.com> wrote: > > > If you have a composite index, the performance of this query should be > > > mostly linear (find start location of index and just return min(2000, > > number > > > of entities that satisfy query from there on out) number of keys and > > items. > > > If you only have individual indexes for SheetMetadataId as well as > > > InstanceAssignedTo, this uses zigzag merge join, where performance can > > > greatly vary depending on the shape of the data. > > > > Just out of curiosity, what is the performance of this query? > > > > q = db.Query(PrimaryData) > > > q.filter('SheetMetadataId', metadata.getSheetId()) > > > return q.fetch(2000) > > > > If it's in a similar ballpark, my other guess is that the query takes > > that > > > amount of time because the entities are large. > > > > You mentioned created a composite index. Can you post that? > > > > I'll talk to the datastore team to see what we can do to provide > > something > > > similar to EXPLAIN plans for queries. > > > > Ikai Lan > > > Developer Programs Engineer, Google App Engine > > > Blog:http://googleappengine.blogspot.com > > > Twitter:http://twitter.com/app_engine > > > Reddit:http://www.reddit.com/r/appengine > > > > On Thu, Mar 17, 2011 at 10:07 AM, adhi <adhinaraya...@gmail.com> wrote: > > > > Hi Robert, > > > > I've not used reference properties. Its a simple query and it'll be > > > > like this. > > > > > q = db.Query(PrimaryData) > > > > q.filter('SheetMetadataId', metadata.getSheetId()) > > > > q.filter('InstanceAssignedTo IN', > > > > [u'User_c42e8919_448e_11e0_b87b_f58d20c6e2c3', > > > > u'User_1fd87ac5_073d_11e0_8ba1_c122a5867c4a']) > > > > return q.fetch(2000) > > > > > and I replaced the IN filter to '=' with single value. Still its > > > > taking same time. > > > > > On Mar 17, 6:27 am, Robert Kluin <robert.kl...@gmail.com> wrote: > > > > > Use Appstats. It may not be the query that is slow. If you are using > > > > > reference properties, perhaps you are dereferencing them. If you > > > > > should us the query and how you're using the results we might be abel > > > > > to give more suggestions. > > > > > >http://code.google.com/appengine/docs/python/tools/appstats.html > > > > > > Robert > > > > > > On Mon, Mar 14, 2011 at 10:54, adhi <adhinaraya...@gmail.com> wrote: > > > > > > Hi, I'm running a query in appengine which is returning just 1200 > > > > > > entities, but its taking 3.5 seconds. The query doesn't contains > > > > > > inequality filters, but anyway I added index for that. Can anyone > > tell > > > > > > me how to analyse this and improve theperformance? > > > > > > > -- > > > > > > 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-appengine@googlegroups.com > > > > . > > > > > > To unsubscribe from this group, send email to > > > > google-appengine+unsubscr...@googlegroups.com. > > > > > > For more options, visit this group athttp:// > > > > 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-appengine@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. > > > -- > > 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-appengine@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. -- 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-appengine@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.