2012-01-20 32 views
14

Cấu hình Hibernate này có vẻ bề ngoài nên kiểm soát số lượng đối tượng được lưu trong bộ đệm ẩn cấp đầu tiên. Lý do rất dễ hiểu, chúng tôi không muốn hết bộ nhớ.Điểm của việc xác định hibernate.jdbc.batch_size là gì?

Nhưng điều gì đó khiến tôi khó hiểu. Mọi việc triển khai tôi đã thấy bao gồm this website có sự tuôn ra rõ ràng và rõ ràng. Không có vấn đề, nhưng sau đó điểm của thuộc tính cấu hình là gì?

Lưu ý: Tôi giả định ở đây là bằng cách nào đó Hibernate theo dõi kích thước của bộ đệm và nếu số lượng đối tượng của một loại nhất định lớn hơn kích thước bộ nhớ cache thì đồng bộ hóa bộ đệm với db. Không biết nếu giả định đó là sai ???

Trả lời

21

Tùy chọn cấu hình này không liên quan gì đến kích thước của bộ nhớ cache cấp một. Và xóa phiên không xóa bất kỳ thứ gì khỏi bộ nhớ cache. Nó ghi các thay đổi đang chờ xử lý (chèn, xóa, cập nhật) vào cơ sở dữ liệu. Bộ nhớ cache chỉ bị xóa khi clear() được gọi một cách rõ ràng hoặc khi phiên được đóng lại. Nếu bạn không rõ ràng hoặc điều khoản phiên (hoặc evist thực thể cụ thể), bộ nhớ cache sẽ tiếp tục phát triển và phát triển. Đó không phải là một vấn đề vì nó thường rất ngắn ngủi (thời hạn của một giao dịch).

Cập nhật hàng loạt JDBC cho phép gửi nhiều truy vấn cập nhật trong một đợt duy nhất tới cơ sở dữ liệu. Nó làm giảm số lượng cuộc gọi mạng. Bạn có thể xem nó khi tải lên một tệp nén không nén có chứa 20 tệp thay vì gửi 20 tệp riêng lẻ.

Sự nhầm lẫn xuất phát từ thực tế là các cập nhật hàng loạt được đề cập trong trang được liên kết trong câu hỏi của bạn không liên quan gì đến cập nhật hàng loạt JDBC. Những gì Hibernate có nghĩa là với cập nhật hàng loạt là "cập nhật được thực hiện bởi một công việc hàng loạt". Công việc hàng loạt thường có giao dịch dài hơn nhiều mà các trường hợp sử dụng nghiệp vụ thông thường và cập nhật hàng trăm, hàng nghìn hoặc thậm chí nhiều thực thể hơn trong một giao dịch. Đây là lý do tại sao Hibernate khuyến cáo thường xuyên xả và xóa phiên trong trường hợp này, để tránh hết bộ nhớ.

+0

Cảm ơn bạn đã làm rõ điều đó. Bằng cách nào đó tôi đã nghĩ rằng họ có liên quan nhưng đây là tất cả các tối ưu hóa riêng biệt. –

Các vấn đề liên quan