기반 on the answers to this question 일괄 처리 크기는 Select N + 1 쿼리를 사용하는 것과 Eager Fetch 호출로 너무 많은 데이터를 가져 오는 것 사이의 솔루션입니다.Nhibernate 성능 고려 사항 - eager loading 대 batchsize 결정을 비교하는 데 도움이 필요합니다.
이상적인 배치 크기를 결정하는 과정은 무엇입니까?
하나의 쿼리로 모두 시도해야합니까? 증가하는 배치 크기가 어떤 시점에서 느려지 기 시작합니까?
내 질문에 왜 모든 대용량 N + 1 상황을 "잡으려고"매우 큰 배치 크기가없는 것일까?
in this article about nhibernate performance 또한 nhibernate 성능에 관한 섹션 (19.1.5. 일괄 페칭 사용)에서 일괄 페칭을 사용하여 이러한 쿼리 (Cats -> Owners, Owners -> Children)를 사용하는 것에 대해 이야기하지만, Eager Fetch는 컬렉션의 모든 항목에있는 해당 속성에 액세스해야한다는 것을 알고 있다면 이러한 경우 최적이 될 수 있습니까?
. 한 페이지에서 데이터베이스에 대해 85 개의 쿼리가 생성되었습니다 (일괄 처리 작업도 포함). 열망하는 가져 오기는 약 7 개의 쿼리로 이것을 줄이지 만 전반적인 성능 관점에서 큰 데이터 세트가 주어지면 시스템 속도가 느려지는지 파악하려고합니다. – leora
링크를 작성해 주셔서 감사합니다. http : //www.javalobby.org/java/forums/m91885142.html – Rippo
. 그 위대한. 실제로 몇 가지 질문이 제기됩니다. 1) Select N + 1을 피하기 위해 항상 배치에 모든 것을 사용하지 않는 이유는 무엇입니까? 거기에 어떤 단점이 있니?. 또한,이 질문에 어떤 생각을 가지고 있습니까 : http://stackoverflow.com/questions/4584675/how-to-get-optimal-performance-with-recursive-self-joins-using-nhibernate 찾을 수 없습니다. 재귀자가 조인을 위해 nhibernate에서 작동하는 패턴 – leora