现在我知道bigint是2 ^ 64; 也就是说,原子比已知宇宙中的原子多.我不应该担心,因为我的人脑只是无法绕过那个数字的巨大.
但是,假设我记录了从发布到结束时系统中每个类别,产品和订单的每个更改.在担心主键值耗尽之前,我是否应该关注表写入的性能?我应该将不同优先级的事件记录到不同的事件表中吗?在用完bigint之前,我是否会耗尽硬盘上的原子?在开始存档/清除之前,我应该让事件日志表有多大?
我有一个主键为bigint的表(标识属性为是,从1开始盯着).此表已投入生产,并且每日更新:大量删除和插入.
问题是这个密钥现在变得太大了8位数.我终于担心有一天会溢出.
幸运的是,此密钥不用作任何其他表的外键.它仅用于标识表中的行.因此,我可以安全地重置从1开始的键值,也许每年一次.
我可以创建一个空白表并在那里复制其他字段数据,然后删除原始表中的所有行,重置键/表,最后复制数据.
不确定Microsoft SQL 2005中是否有可用的内置sp_xxx来执行此任务:只是从1开始按顺序重置主键而不影响其他列数据?还是其他简单的解决方案?