Что такое хорошее значение 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 может иметь больше смысла для сокращения вызовов базы данных. Это метод проб и ошибок.