Tôi có mối quan hệ một chiều cha/con. Khi tôi kiểm tra nhật ký tôi thấy rằng có một truy vấn chèn riêng biệt cho mỗi hàng trẻ em, tương đương với việc chúng ta hãy nói:Cách hiệu quả nhất để chèn nhiều hàng vào JPA
insert into childTable(col1, col2) values(val1, val2);
insert into childTable(col1, col2) values(val3, val4);
Nó sẽ không thể hiệu quả hơn để chèn tất cả các hàng trong một truy vấn duy nhất? Một cái gì đó dọc theo dòng:
insert into childTable(col1, col2) values(val1, val2), (val3, val4)
Có cách nào để buộc JPA tạo ra nhiều dòng chèn thay vì chèn dòng đơn không?
Chỉnh sửa:Tôi hiện đang sử dụng chèn tầng nên tôi chèn phụ huynh và chèn cho trẻ em được tạo tự động. Tôi muốn tiếp tục sử dụng phương pháp đó thay vì chúng ta hãy nói bằng tay tạo một truy vấn SQL khổng lồ như tôi nghĩ rằng chèn tầng tạo ra mã sạch hơn.
Tôi đã xả phiên thường xuyên để kiểm soát kích thước bộ đệm L1 để hết bộ nhớ không phải là vấn đề.
Điều này rất hữu ích. Tôi đã khá chắc chắn rằng chèn multiline không phải là tốt hơn đáng kể nhưng tôi figured tôi có thể nhận được một số cải tiến bằng cách đi qua B-cây cơ bản chỉ một lần. Tôi đang sử dụng các khóa chính tăng tự động nhưng sẽ xem xét sử dụng các chuỗi thay thế. – ventsyv
@ventsyv & Rob Tôi biết tôi đang muộn để thảo luận nhưng kiểm tra [this] (http://stackoverflow.com/a/1793209/1398531) ra –
@AbhishekBhatia Câu hỏi mà bạn liên kết đến đang nói về chèn nhiều giá trị so với chèn riêng biệt giá trị. Câu hỏi này là trong bối cảnh ngủ đông, hỗ trợ chèn hàng loạt. Lô sẽ chèn nhiều hàng trong một vòng chuyến đi đến máy chủ và sử dụng lại câu lệnh được phân tích cú pháp cho tất cả các chèn riêng biệt. Nếu sự khác biệt này không rõ ràng với bạn, tôi khuyên bạn nên tạo một câu hỏi mới: tham khảo hai câu hỏi này và hỏi tại sao câu trả lời có vẻ mâu thuẫn. – Rob