The problem is region exclusions and where and app can be bought are two different things, conflating them has caused no end of issues we are now unravelling. All the data is still there in the db, its just that the joins are more tortuous. You could cache the heck out of this, there are clear and simple points where the region exclusions change, places where its simple to nuke the cache.