depending on how many rows you're returning, it might also help to replace the calls to acs_object.name() with explicit references to the user name columns - I haven't used Oracle in ages, but ISTR that context switches between SQL and PL/SQL are expensive... plus acs_object.name() isn't exactly lightweight itself...
not that this would do as much as having the optimizer do the right thing, but it should help a bit...