Tack alla för hjälpen. Efter lång tids kämpande med det problemet, hjälpte kaliatechs svar mig till slut att felsöka problemet.
Först och främst har jag gjort ett fruktansvärt misstag i min fråga. Jag skrev att:
Att köra den här frågan med lokal databas är väldigt snabbt, men att använda den på distans är riktigt dålig.
Eftersom det inte är helt sant. Frågan som jag gjorde i Hibernate ser ut som den uppe:
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
Men den faktiska frågan som jag gjorde med SQL PLus eller Navicat till exempel var:
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
Observera att första frågeval börjar:select s.* ...
och den andra är select * ...
. Och det var anledningen till så dåliga prestationer. Nu är båda frågorna klara på nolltid. Frågan är vad som är skillnaden:prestandaproblem:skillnaden mellan välj s.* och välj *