助けてくれてありがとう。その問題に長い間苦労した後、ついにkaliatechの回答が問題のデバッグに役立ちました。
まず第一に、私は私の質問でひどい間違いをしました。私はそれを書いた:
ローカルデータベースでこのクエリを実行するのは非常に高速ですが、リモートで使用するのは非常に貧弱です。
それは完全に真実ではないので。 Hibernateで行ったクエリは次のようになります:
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
しかし、たとえばSQLPLusやNavicatで行った実際のクエリは次のとおりです。
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
最初のクエリ選択が開始されることに注意してください:select s.* ...
2つ目はselect * ...
です 。そして、それがそのようなパフォーマンスの低下の理由でした。これで、両方のクエリがすぐに完了します。問題は、違いは何ですか:パフォーマンスの問題:selects。*とselect*