The reason this call takes so much time is because the 'host' resource has sub-resources, and there is a paging request on it. When a resource with sub-resources is requested, AND it has paging request, all top-level are got, and their sub-resources are gotten before the paging/predicate filters are applied. This is very expensive when there are 1000 hosts with sub-resources and only 100 hosts are needed. Bulk of the time is spent in populating the 900 top-level resources which are then thrown away.
There is an optimization we can make here where we can reduce the number of top-level resources by applying the paging & predicate request on top-level resources IF the predicate applies only to the top-level resource and not to the sub-resources. Then we can safely reduce the number of top-level resources by applying the paging/predicate filtering.