c# - 带有 nhibernate 的 c# 控制台应用程序中的 Hilo

标签 c# nhibernate

有一个控制台应用程序,许多人会一遍又一遍地开始 并使用希洛。每次启动应用程序并重建 sessionfactory 时,hilo 列 (next_hi) 都会增加,并且带有 id 的保留空间将丢失。

有没有人有这方面的经验?

对于 hilo-generator 来说,这不是一个很好的功能吗? 记住经常关闭的应用程序的高值和低值 许多用户?我的意思是它已经预留了一个id空间,这 在那种环境中,通常没有得到充分利用。

感谢您提前分享您的经验!

最佳答案

Int64 最大值为 9223372036854775807。 让我们假设每个应用程序启动您将插入一条记录并丢失 99 个 ID。 这意味着您有 9223372036854775807/100 = 92233720368547758 个有效 ID。

假设您的应用程序每秒向数据库中插入 50000 条记录。

92233720368547758/50000 = 184467440737095.51614 秒 = 2135039823.346012918287037037037 天 = 5930666 年。

你还在担心吗?

关于c# - 带有 nhibernate 的 c# 控制台应用程序中的 Hilo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1530926/

相关文章:

c# - Thread.Yield 是否会让 CPU 进行上下文切换到同一进程或同一处理器中的其他线程?

c# - 如何直接在 .NET 代码中快速创建虚拟图像

c# - Windows 10 中的 Html 编辑类似于邮件应用程序?

c# - 获取 LINQ 列表中的所有子项

c# - 比较手写 ADO/Sprocs 与 nHibernate

.net - 如果更新行每表一个序列,则更新版本字段

c# - 使用 C# 检索 Access .mdb 数据库密码

nhibernate - 标准查询中的 bool 值

c# - 如何使用 NHibernate 创建标签系统(多对多)

c# - 使用 NHibernate Criteria API 选择特定的数据集和计数