第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring批處理JPAItemReader性能問題

Spring批處理JPAItemReader性能問題

UYOU 2022-05-21 21:01:46
下面是我的 spring 批處理作業(yè)的配置,它從數(shù)據(jù)庫中獲取記錄,在項目處理器中進行一些處理,更新狀態(tài)列并寫回數(shù)據(jù)庫。當我運行 10k 條記錄時,我可以看到它一條一條地獲取每條記錄并以相同的方式更新狀態(tài)。最初我打算使用多線程,但這沒有任何意義,因為我的工作每天運行一次,記錄數(shù)量從 10 到 100k 不等。(記錄在大多數(shù)情況下少于 5k,一年中的少數(shù)幾天(5 到 10 天)達到 50k 到 100k)。我不想在一年中的 10 天里增加更多的 CPU 并被 Kubernetes 收費?,F(xiàn)在的問題是,當我運行這項工作時,它只需要 100 條記錄,它獨立運行每個選擇查詢,而不是一次需要 100 條。一次更新也是一條記錄,處理 10k 條記錄需要 10 分鐘,這真的很慢。如何進行更快的讀取、處理和寫入?我可以擺脫多線程并偶爾獲得更多的 CPU 利用率。更多信息在代碼中作為注釋給出。
查看完整描述

2 回答

?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

您只需一個配置屬性即可為 INSERT、UPDATE 和 DELETE 語句啟用 JDBC 批處理:

spring.jpa.properties.hibernate.jdbc.batch_size

它確定一次發(fā)送到數(shù)據(jù)庫以執(zhí)行的更新數(shù)量。

有關詳細信息,請參閱此鏈接


查看完整回答
反對 回復 2022-05-21
?
手掌心

TA貢獻1942條經(jīng)驗 獲得超3個贊

謝謝大家的建議。我自己發(fā)現(xiàn)了這個問題。我正在使用 JdbcPagingItemReader 和 RepositoryItemWriter。閱讀器按預期工作,但編寫器正在為處理器后傳遞的每條記錄觸發(fā)選擇查詢。我相信背后的原因是,由于閱讀器不是標準的 JPA 閱讀器,因此該記錄僅在處理器之后才會持久保存到 JPA。不過我不確定。但是將編寫器更改為 JdbcBatchItemWriter 解決了這個問題。



查看完整回答
反對 回復 2022-05-21
  • 2 回答
  • 0 關注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號