単純なユースケースがありますが、実際には最適化されていないため、最適化できるかどうかを知りたいです。
ID
と という名前の変数を含む単純なエンティティがあるとしますprice
(エンティティは と呼ばれProduct
ます)。
私はandを使用してHibernate
おりJPA
、毎時間製品の価格を更新したいので、ここに疑似コードがあります:
List<Product> products = Product.retrieveAll();
for (Product p : products) {
p.price = makeSomeComplexComputationsToGetNextPrice();
p.save(); // Updates the entity in the DB
}
このコードは実にシンプルです。はmakeSomeComplexComputationsToGetNextPrice();
、CPU を使用していくつかの計算を行い、高速です。
100 個の製品がある場合、すべて問題ありません (コードは 101 個の SQL 要求を作成します)。しかし、10,000 個の製品があり、コードが 10,001 個の SQL 要求を作成し、数秒かかるとしましょう。
このユース ケースは私の実際のユース ケースの単純化されたバージョンですが、問題はここにあります。製品が多すぎると、実行に時間がかかりすぎます (膨大な数のクエリが原因で)。
とを使用hibernate
してJPA
、そのようなユースケースを最適化する方法はありますか? (このコードの実行には 1 秒もかからないはずですが、すべてのクエリのために 1 秒よりもはるかに長い時間がかかります)
手伝ってくれてどうもありがとう