Какое хорошее значение MaxLo для алгоритма HiLo?

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

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

Ответ 1

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

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