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

前端之家收集整理的这篇文章主要介绍了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代理?

如果有人可以提出一步一步的算法…… 原文链接:https://www.f2er.com/java/129824.html

猜你在找的Java相关文章