Bedankt allemaal voor de hulp. Na een lange tijd worstelen met dat probleem, heeft het antwoord van kaliatech me eindelijk geholpen om het probleem op te lossen.
Allereerst heb ik een vreselijke fout gemaakt in mijn vraag. Ik schreef dat:
Het uitvoeren van deze query met de lokale database is erg snel, maar het op afstand gebruiken is echt slecht.
Aangezien het niet helemaal waar is. De query die ik deed in Hibernate ziet eruit als die hierboven:
select s.* from sales_unit s left join sales_unit_relation r on (s.sales_unit_id = r.sales_unit_child_id) where r.sales_unit_child_id is null
Maar de eigenlijke vraag die ik deed met bijvoorbeeld SQL PLus of Navicat was:
select * from sales_unit s left join sales_unit_relation r on (s.sales_unit_id = r.sales_unit_child_id) where r.sales_unit_child_id is null
Merk op dat de eerste selectie van de zoekopdracht start:select s.* ...
en de tweede is select * ...
. En dat was de reden van zo'n slechte prestatie. Nu zijn beide zoekopdrachten in een mum van tijd voltooid. De vraag is, wat is het verschil:prestatieprobleem:verschil tussen select s.* vs select *