HiLo算法的MaxLo值是多少?

时间:2011-05-09 14:24:28

标签: nhibernate hilo

在我目前的设计中,我HiLo设置为MaxLo 1000。这是过度的吗?我可以将这个数字减少到像100这样的数字并且还可以吗?

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

1 个答案:

答案 0 :(得分:9)

HiLo值控制您在为Id选择的数字类型范围内“快速”刻录的内容。无论何时加载新的NHibernate配置,都会初始化HiLo系列新Ids,并在处理应用程序时将其丢弃。如果您的应用程序活动较少,并且您希望“慢速”刻录速率选择10,因为您更有可能消耗给定应用程序加载/处置周期的所有ID。

请记住,如果NHibernate耗尽了ID,它只会获取另一组。如果您的应用程序经常被抨击,那么将其设置为1,000可能会减少数据库调用。这是一个试验和错误的事情。