Соображения производительности Nhibernate - нужна помощь, чтобы сравнить интенсивную загрузку и решение по размеру пакета - PullRequest
0 голосов
/ 03 января 2011

на основе ответов на этот вопрос кажется, что размер пакета - это решение между запросами Select N + 1 и получением слишком большого количества данных с помощью вызовов Eager Fetch.

Каков процесс определения моего идеального размера партии?

Стоит ли пытаться получить все в одном запросе? начинает ли увеличиваться размер пакета в какой-то момент?

Наверное, мой вопрос: почему бы мне просто не всегда иметь очень большой размер партии, чтобы "поймать" все выбранные N + 1 ситуации?

Кроме того, в этой статье о производительности nhibernate , в разделе (19.1.5. Использование пакетной выборки) о производительности nhibernate, в этом разделе рассказывается об использовании пакетной выборки для оптимизации этих запросов (Cats -> Владельцы, Владельцы -> Дети), но не будет ли в этих случаях оптимальной выборка, если вы знаете, что вам потребуется доступ к этому свойству каждого элемента в вашей коллекции ??

1 Ответ

1 голос
/ 03 января 2011

Увеличивается ли размер партии замедлиться в какой-то момент?

Возможно, я что-то здесь упускаю, но grabbing lots of data в одной поездке - это то, чего вам следует избегать любой ценой. Конечно, ваша стратегия подкачки будет сначала reduce количество строк, которые вы возвращаете. После того, как вы определили размеры подкачки, дозирование может быть соответствующим образом настроено.

Лично, если мне нужно установить, скажем batch-size, чтобы сказать 100, тогда я сначала расскажу, почему я возвращаю все эти данные ...

Это, конечно, мое мнение, и, не зная, ваш вариант использования может быть неправильным.

Официальные документы: Повышение производительности с помощью пакетной выборки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...