0

次の hibernate クエリは、catId と inventoryId を渡すことで、ProductCatalogue レコードのリストを取得するために使用されています。

select prodcat from ProductCatalogue prodcat where prodcat.prodSec.prodId=:catId and prodcat.prodPlacedOrder.inventoryId=:inventoryId

テーブル ProductCatalogue と ProdPlacedOrder は、300万以上のレコードを持つテーブルです。inventoryId は prodOrder テーブルの列であり、prodPlacedOrder は prodOrder テーブルを拡張します。

この実行時のクエリには多くの時間がかかり、単一の休止状態のクエリが多くの複雑な SQL クエリを実行します。

問題の可能性と、クエリがより高速に実行されるように変更する方法についての提案はありますか?

4

1 に答える 1

0

詳細情報なしで言うのは難しいですが、そのテーブルからのデータが必要ない場合は、ProdPlacedOrder を LAZY fetch として作成してみてください。

また、前述の phatmanace として - インデックスを確認してください。

于 2013-02-13T20:31:41.913 に答える