Hi,
Crm is usually good at picking the best query strategy using the default settings. The temporary table is being used to prevent a Join on the POA table.These kind of queries can start to rum slowly when you have a lot of sharing with users and teams. First thing to check - does the query run faster for an admin user since I believe that the POA part is omitted in this case. If it does run faster the issue is probably security and the size of the POA table. You may need to scale up your SQL server.
You might find the following useful
technet.microsoft.com/.../hh413200.aspx
Hope this helps,
Scott