Tzakie,

A few things:

1. What is the shape of your data?  i.e. how big are your entities and
what do they contain?

2. How are you using entity groups?  Is all your data in a single
entity group (shared ancestor)?

3. Also try to experiment with permutations of your index and query to
try to isolate the bottleneck.  i.e. if you just fetch(500) on "SELECT
* FROM USER_INVENTORY", does it still take as long?  (and if so, then
rephrase the question to eliminate the index aspects)



On Jan 8, 10:48 am, Tzakie <gwood...@comexton.com> wrote:
> I've spend alot of time profiling and optimizing my app.
> I've watched all the google io videos and done a ton of reading...
>
> But there is one query I can't optimize away:
>
> SELECT * FROM USER_INVENTORY WHERE TUSER_ID=637 AND CATEGORY_ID=2752
> ORDER BY ITEM_NUMBER ASC, ITEM_NAME, SUFFIX_NAME
>
> Yes there is a custom index for it
>
> It looks like a simple enough query, but it's taking the datastore
> 2.170703-1.863699 seconds to load and get about 500 records. The app
> engine translates 2 real seconds into 20 'processor seconds' and of
> course various quotas all go crazy. It's a simple list of a web stores
> items in a category any more than 50 or so and there is a noticeable
> delay.
>
> Why it it taking the datastore so long to return something like this?
>
> Entities seem to take forever to retrieve.
>
> Questions:
> I assume it's the number of returned entities here that causes the
> delay? E.G. The big penalty is for returning an entity not the query.
>
> Once you have a custom index the trailing ORDER BY items ITEM_NAME,
> SUFFIX_NAME don't matter much for speed since the key just gets a
> little longer.
>
> Do the number of properties on the entity matter much for query time?
>
> Is there some way to return JUST the properties I want? Whould that
> help for speed?
>
> Is there some way to get the just keys back from a query and memcache
> the objects?
>
> Though the queries are limited at 1,000 which is reasonable. The data
> store is so slow you can't get more than about 50 records on the
> screen at once. It seems like there is a fundamental limit, E.G. If
> you want a list of 500 items app engine just can't do it not matter
> what the technique.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to