0

ユーザードメインオブジェクトのセットを含むグループドメインオブジェクトがありますこのグループオブジェクトには200,000人のユーザーがいる可能性があります。

これをテストしているときに、groupModel.delete(flust:true)を使用してこのグループを削除したり、200,000人のユーザーがいるときにグループオブジェクトgroupModel.users.clear()のすべてのユーザーを削除したりすると、非常に遅いことに気付きました。グループドメインオブジェクトにはカスケードがあります。ユーザー向けに設定された「all-delete-orphan」

これらの削除操作のいずれかをどのように高速化できるかについて誰かが何か提案がありますか

4

1 に答える 1

5

削除のたびにフラッシュする必要はありません。それはひどく遅くなります。削除をサービス/トランザクションに入れて、groupModel.delete()を実行します。200,000レコードとすべてのカスケードを削除すると、たとえば100レコードよりも時間がかかることに注意してください。ただし、Hibernateに強制するのではなく、フラッシングについて心配させると、より高速になります。

于 2013-01-24T15:13:13.677 に答える