A few things to check:
1. what is a query execution time on DB side?
2. do you have a class definition on destination level?
3. does the class (if defined) match properties to result set?
All these may greatly affect the resulting performance.
DB result is 500MS. Yes and Yes. Checked closely several times. The proerpties are simple strings and ints. The arraycollection of the result set is not binded to anything. I am pretty sure its something with the server, but not sure what. 8K records should come back within a couple of seconds.