基于on the answers to this question,批量大小似乎是选择N + 1查询与使用Eager Fetch调用获取过多数据之间的解决方案。
确定理想批量大小的过程是什么。
是否应该尝试全部在一个查询中?增加批量大小是否会在某个时候开始放缓?
我想我的问题是为什么我不会总是有一个非常大的批量大小来“捕捉”所有选择的N + 1情况?
此外,in this article about nhibernate performance,在关于nhibernate性能的部分(19.1.5。使用批量提取)中,本节讨论使用批量提取来优化这些查询(Cats - > Owners,Owners - > ;孩子们)但如果你知道你需要访问集合中每个项目的属性,那么Eager Fetch在这些情况下不会是最佳的吗?
答案 0 :(得分:1)
是否开始增加批量大小 在某些时候放慢了?
也许我在这里遗漏了一些东西,但是在一次旅行中grabbing lots of data
是你应该尝试并且不惜一切代价避免的。当然,您的分页策略将首先reduce
您返回的行数。在您完成分页大小之后,可以相应地对批处理进行微调。
就个人而言,如果我必须说batch-size
说100
,我会首先说明为什么要归还所有这些数据......
这当然是我的意见,不知道你的用例可能不正确。