Terima kasih semua atas bantuannya. Setelah lama berjuang dengan masalah itu, akhirnya jawaban kaliatech membantu saya untuk men-debug masalah tersebut.
Pertama-tama, saya telah membuat kesalahan besar dalam pertanyaan saya. Saya menulis bahwa:
Menjalankan kueri ini dengan database lokal sangat cepat, tetapi menggunakannya dari jarak jauh sangatlah buruk.
Karena tidak sepenuhnya benar. Kueri yang saya lakukan di Hibernate terlihat seperti yang di atas:
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
Tetapi kueri aktual yang saya lakukan dengan SQL PLus atau Navicat misalnya adalah:
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
Harap perhatikan bahwa pemilihan kueri pertama dimulai:select s.* ...
dan yang kedua adalah select * ...
. Dan itulah alasan kinerja yang buruk. Sekarang kedua pertanyaan selesai dalam waktu singkat. Pertanyaannya adalah, apa bedanya:masalah kinerja:perbedaan antara pilih s.* vs pilih *