Cảm ơn tất cả các bạn đã giúp đỡ. Sau một thời gian dài vật lộn với vấn đề đó, cuối cùng câu trả lời kaliatech đã giúp tôi gỡ lỗi.
Trước hết, tôi đã mắc một sai lầm khủng khiếp trong hành trình của mình. Tôi đã viết rằng:
Chạy truy vấn này với cơ sở dữ liệu cục bộ rất nhanh, nhưng sử dụng nó từ xa thì thực sự kém.
Vì nó không hoàn toàn đúng. Truy vấn mà tôi đã thực hiện trong Hibernate trông giống như truy vấn lên:
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
Nhưng truy vấn thực tế mà tôi đã thực hiện với SQL PLus hoặc Navicat chẳng hạn là:
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
Vui lòng lưu ý rằng truy vấn chọn đầu tiên bắt đầu:select s.* ...
và cái thứ hai là select * ...
. Và đó là lý do của hiệu suất kém như vậy. Bây giờ cả hai truy vấn được hoàn thành nhanh chóng. Câu hỏi đặt ra là sự khác biệt là gì:vấn đề hiệu suất:sự khác biệt giữa select s. * So với select *