sql >> データベース >  >> RDS >> Oracle

直接実行する場合と比較してHibernateselectのパフォーマンスが低い-どのようにデバッグしますか?

    助けてくれてありがとう。その問題に長い間苦労した後、ついに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*

    の違い

    1. Oracleストアドプロシージャを実行する方法は?

    2. PSQLスクリプト(bashスクリプトから供給)の変数として外部XMLファイルにアクセスする

    3. ATTIMEZONEを使用して古いレポートを修正する

    4. SQLでの条件付きUPDATEステートメントの使用