That’s a very interesting wrinkle, pulling from multiple datasources…my go-to reference on efficient property query is at Efficient Session Relevance Query for Computer Properties but I think we may need to adapt it a bit to deal with multiple sources.
The main point still holds though - the biggest factor in the efficiency is in how we construct the tuple, to prevent the property object from being looked up X every computer, or the computer object from being retrieved X every property.
I should be able to post something later today, but can you give the structure of the query you are using now? You can trim it to a couple of properties if that makes posting it easier.