2011-05-09 62 views
10

在我目前的設計中,我有HiLo安裝有 1000。這是過度的嗎?我可以減少這個數字到100之類的東西嗎?還可以嗎?HiLo算法的MaxLo值是多少?

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

回答

9

HiLo值控制着您通過爲該Id選擇的數字類型範圍的「快」程度。任何時候加載新的NHibernate配置時,新Ids的HiLo範圍都會初始化,並且在處理應用程序時將被丟棄。如果您的應用程序的活動較少,並且您希望「慢」的刻錄速率選擇類似10的內容,因爲您更有可能在給定的應用程序加載/處理週期中使用所有Ids。請記住,如果NHibernate耗盡了Ids,它只是獲取另一組。如果您的應用程序經常遭受嚴重抨擊,那麼將其設置爲1,000可能會更有意義減少數據庫調用。這是一個試錯&錯誤的事情。