对于大多数数据库实体,我有一个使用增量ID生成器的现有产品。新版本应允许在同一数据库上进行多个服务器实例的集群。该产品支持使用MSSQL和Oracle数据库。
所以我考虑将ID生成器更改为本机,但是存在一些问题。
提前感谢您对此的任何见解。
答案 0 :(得分:0)
我建议看一下hilo发电机策略。好处是它可以用于多个进程,并且您仍然保留在NHibernate中使用生成的id的性能优势(特别是允许批量插入)。
MSSQL不允许您将列更改为标识列 - 您需要添加新列然后更新所有外键 - 如果您有很多表/关系,这可能非常非常混乱
使用hilo生成器策略可以完全避免这个问题,它只是一个配置更改,并向数据库添加一个表来存储表的高值,并使用正确的值填充该表。