2017-05-23 18 views
0

Spring Data 4.3.7Hibernateのベンダーで作業しています。私の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 
+0

あなたの質問に対する答えは、おそらく、平均実行時間が少数のサンプルでは信頼できないということでしょう。詳細(クエリ、データモデルなど)を提供できますか? – crizzis

+0

問題のクエリを追加しました。ありがとう –

+0

これは単一のHibernateセッションですか?もしそうなら、あなたのセッションはますます多くのエンティティを集めて、あらゆるルックアップをより遅く、遅くするかもしれません。 –

答えて

0

これはクエリです。類似している場合は、クエリがひどく最適化されているか、インデックスが不足していることがわかります。詳細については、explain queryを実行する必要があります。

ORMまたはDB自体に問題があることはすべてわかります。

+0

クエリが長い反復であります。最初の何千回もの反復では、時が経つにつれて時が悪くなります。 SQLワークベンチでは、クエリに問題はないようです。 –

関連する問題