java – Hibernate的批量获取算法如何工作?

我在“Manning- Java Persistence with Hibernate”中找到了批量获取算法的描述:

What is the real batch-fetching
algorithm? (…) Imagine a batch size of
20 and a total number of 119
uninitialized proxies that have to be
loaded in batches. At startup time,
Hibernate reads the mapping Metadata
and creates 11 batch loaders
internally. Each loader kNows how many
proxies it can initialize: 20,10,9,
8,7,6,5,4,3,2,1. The goal is to
minimize the memory consumption for
loader creation and to create enough
loaders that every possible batch
fetch can be produced. Another goal is
to minimize the number of sql
SELECTs,obvIoUsly. To initialize 119
proxies Hibernate executes seven
batches (you probably expected six,
because 6 x 20 > 119). The batch
loaders that are applied are five
times 20,one time 10,and one time 9,
automatically selected by Hibernate.

但我仍然不明白它是如何工作的.

>为什么11批装载机?
>为什么批量加载器可以初始化:20,8,1代理?

如果有人可以提出一步一步的算法……

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...