Děkuji všem za pomoc. Po dlouhé době, kdy jsem se s tím problémem potýkal, mi konečně odpověď kaliatech pomohla problém odladit.
Za prvé, ve své otázce jsem udělal hroznou chybu. Napsal jsem to:
Spuštění tohoto dotazu s lokální databází je opravdu rychlé, ale použití na dálku je opravdu špatné.
Protože to není úplná pravda. Dotaz, který jsem udělal v Hibernate, vypadá jako ten nahoře:
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
Ale skutečný dotaz, který jsem provedl například s SQL PLus nebo Navicat, byl:
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
Všimněte si, že první výběr dotazu začíná:select s.* ...
a druhý je select * ...
. A to byl důvod tak špatného výkonu. Nyní jsou oba dotazy dokončeny během okamžiku. Otázkou je, jaký je rozdíl:problém s výkonem:rozdíl mezi select s.* a select *