Spring Data 4.3.7
とHibernate
のベンダーで作業しています。私のDBはMySQL 5.2.5
です。私は3つのクロスジョイン(JPQLで開発された)というクエリを持っています。このクエリは何千回も呼び出されます。コールの数が増えると、その平均動作時間が長くなります。呼び出し回数に応じて時間が伸びるのはなぜですか? 私を助けてもらえますか? - CLIまたはSQLワークベンチから手によって、まったく同じクエリを実行し、実行時間を比較手始めにJPA/Hibernateクエリの実行時間が高すぎる
select distinct attrrelaen3_.atwrt as col_0_0_, attrrelaen3_.msehi as col_1_0_,
from A articolian0_ cross join B catalogore1_ cross join C templateen2_ cross join D attrrelaen3_
where articolian0_.cod_mat='XXXX' and
catalogore1_.pk_document=articolian0_.pk_document and
catalogore1_.begda<=CURRENT_DATE and
catalogore1_.endda>=CURRENT_DATE and (catalogore1_.pk_document_chld like 'ZCS%')
and templateen2_.template=catalogore1_.zzcattemplate and templateen2_.caratt=attrrelaen3_.atinn
and attrrelaen3_.pk_oggetto=articolian0_.cod_mat and attrrelaen3_.begda<=CURRENT_DATE
and attrrelaen3_.endda>=CURRENT_DATE
order by templateen2_.msehi ASC
あなたの質問に対する答えは、おそらく、平均実行時間が少数のサンプルでは信頼できないということでしょう。詳細(クエリ、データモデルなど)を提供できますか? – crizzis
問題のクエリを追加しました。ありがとう –
これは単一のHibernateセッションですか?もしそうなら、あなたのセッションはますます多くのエンティティを集めて、あらゆるルックアップをより遅く、遅くするかもしれません。 –