MS SQL Server:int Ids跳跃1000

时间:2016-09-10 20:34:40

标签: sql-server

在我的MS SQL Server上的所有数据库表中,每次重新启动服务器时,id列跳转1000或更多。由于这是一个本地应用程序,并且服务器是从我的一台笔记本电脑托管的,因此我每天都将其关闭,从而关闭服务器。

最终,这是程序将在大规模设置中使用,我担心这种行为 - 做数学,如果它每次跳过1000,我仍然有超过400万个唯一ID新的一个进入,但计划是这个数据库增长多年。如果我用完了独特的ID,会发生什么? BigInt也遇到了这个问题,但是增加了10,000而不是1000.我看了整个互联网,似乎很多人通过将-t272设置为启动参数来修复此问题,但它对我没有用。有人能告诉我一个解决方法吗?

1 个答案:

答案 0 :(得分:4)

不要担心。

您不会在笔记本电脑上运行生产服务器并且每天都假设关闭它?

对于几乎所有的生产服务器,您都不会经常重新启动SQL Server服务,从而对int允许的数字范围产生重大影响。

即使你"输了"每次重新启动时,整个1,000仍然只有0.0000465661%,范围从1到2147483647.如果您的应用程序足够忙,您可能需要bigint但这种情况极不可能是唯一的原因在这种情况下,你无论如何都不会需要它。

例如,假设您每天重启服务四年,因此会丢失4 * 365 * 1,000 = 1,460,000个可能的值。

如果在同一时间段内你溢出int并且需要BIGINT,这意味着你正在进行(2147483647 - 1460000) / (4 * 365) = 1,469,879插入一天。因此,无论如何,在您需要BIGINT之前,这个问题会花费您不到一天的插入费用。