Nhibernate性能考虑 - 需要帮助比较急切加载与批量决策

时间:2011-01-03 12:40:43

标签: sql-server nhibernate batch-file

基于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在这些情况下不会是最佳的吗?

1 个答案:

答案 0 :(得分:1)

  

是否开始增加批量大小   在某些时候放慢了?

也许我在这里遗漏了一些东西,但是在一次旅行中grabbing lots of data是你应该尝试并且不惜一切代价避免的。当然,您的分页策略将首先reduce您返回的行数。在您完成分页大小之后,可以相应地对批处理进行微调。

就个人而言,如果我必须说batch-size100,我会首先说明为什么要归还所有这些数据......

这当然是我的意见,不知道你的用例可能不正确。

官方文件:Improving performance by using batch fetching