Как работает алгоритм пакетной выборки Hibernate?

Я нашел это описание алгоритма пакетной выборки в "Manning - Java Persistence with Hibernate":

Что такое настоящая пакетная выборка алгоритм? (...) Представьте себе размер партии 20 и всего 119 неинициализированные прокси, которые должны быть загружается партиями. Во время запуска Hibernate читает метаданные сопоставления и создает 11 пакетных загрузчиков внутренне. Каждый загрузчик знает сколько прокси, которые он может инициализировать: 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1. Цель - минимизировать потребление памяти для создание загрузчика и создать достаточно погрузчики, которые каждую возможную партию выборка может быть произведена. Другая цель минимизировать количество SQL SELECT, очевидно. Для инициализации 119 прокси Hibernate выполняет семь партии (вы, вероятно, ожидали шесть, потому что 6 x 20> 119). Партия применяемых погрузчиков пять раз 20, один раз 10 и один раз 9, автоматически выбирается Hibernate.

но я до сих пор не понимаю, как это работает.

  1. Почему 11 пакетных загрузчиков?
  2. Почему пакетные загрузчики могут инициализировать: 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 прокси?

Если бы кто-нибудь мог представить пошаговый алгоритм ... :)

7
задан Svante 12 August 2010 в 16:44
поделиться