Что такое хорошее значение MaxLo для алгоритма HiLo? - PullRequest
11 голосов
/ 09 мая 2011

В моем текущем дизайне у меня есть HiLo , настроенный на MaxLo из 1000. Это чрезмерно? Могу я уменьшить это число до 100 и все еще быть в порядке?

public class HiLoConvention : IIdConvention
{
    public void Apply(IIdentityInstance instance)
    {
         instance.GeneratedBy.HiLo("1000");
    }
}

1 Ответ

9 голосов
/ 09 мая 2011

Значение HiLo определяет, как быстро вы будете прожигать диапазон числового типа, выбранного для идентификатора. Каждый раз, когда загружается новая конфигурация NHibernate, диапазон новых идентификаторов HiLo инициализируется и отбрасывается при удалении приложения. Если ваше приложение имеет низкую активность и вы хотите «медленную» скорость записи, выберите примерно 10, потому что вы с большей вероятностью будете использовать все идентификаторы для данного цикла загрузки / удаления приложения.

Помните, если в NHibernate заканчиваются идентификаторы, он просто выбирает другой набор. Если ваше приложение работает довольно регулярно, тогда установка его на 1000 может иметь больше смысла для сокращения вызовов базы данных. Это метод проб и ошибок.

...