[英]How do I optimize batch INSERTs for Oracle 11g and Hibernate?
我有一個執行大量批處理插入的應用程序。 我想優化應用程序以使其盡快完成。
我看到一些與批處理插入有關的休眠設置:
hibernate.jdbc.batch_size
hibernate.jdbc.batch_versioned_data
hibernate.jdbc.use_get_generated_keys
我不確定是否需要設置這些屬性。 如果確實需要設置它們,則不確定什么是正確的值。
為我的Oracle版本將hibernate.jdbc.batch_versioned_data
和hibernate.jdbc.use_get_generated_keys
設置為true
是否安全?
如何選擇批量大小?
我正在使用這些庫的以下版本:
hibernate.jdbc.batch_size
應將其設置為適合您要求的合理值(建議介於5到30之間)。
hibernate.jdbc.batch_versioned_data
這不是您的數據庫和JDBC驅動程序版本安全(見這個問題的更多細節)。 不要把這個上。 否則,對於版本化實體,樂觀鎖定機制將被靜默破壞。
hibernate.jdbc.use_get_generated_keys
一些Hibernate id生成器使用它,它們在插入后檢索本機生成的密鑰(當自動遞增列和類似的用於主密鑰生成時)。 如果使用此類id生成器,則無論是否使用批處理,都必須啟用它。
另外,請確保啟用hibernate.order_inserts
。 通常可以在這里找到有關此標志和Hibernate批處理的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.