[英]Hibernate performance read-only transaction and many child transactions
我有以下場景:
我有一個用@Transactional(readOnly = true)
注釋的方法(父方法),我在其中獲取了一些實體。 此方法將多次(100+)調用另一個方法(子方法),該方法需要創建個人實體並為此需要獲取的實體。 這個子方法將獲取的實體作為參數,並用@Transactional(propagation = Propagation.REQUIRES_NEW)
注釋,因為我不希望一個人的創建失敗阻止其他人的創建。
我想知道的是以下內容:
如果只讀方法所做的只是獲取對象,然后將對象傳遞給另一個方法,那么如果您更新大量 IMO 對象,最好只使用單個寫入事務或批量寫入事務。 你能解釋為什么子方法會失敗嗎?
您正在做的是執行“批處理作業”的一種方式。 由於您正在為每個項目創建一個事務,因此您實際上使用了所謂的“塊大小”為 1。如果您有許多易於處理的項目要處理,這可能會給您的數據庫帶來很大壓力。 通常最好設計可變塊大小並調整塊大小,直到它滿足您的需要。
根據您的生態系統,您可以使用以下解決方案之一:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.