gpt4 book ai didi

sql-server - 为什么有人应该将身份范围管理与 SQL Server 结合使用

转载 作者:行者123 更新时间:2023-12-03 04:40:26 25 4
gpt4 key购买 nike

几年前,当我开始从事复制工作时,我确信身份范围管理只能在最近的 SQL Server 中用于遗留目的,因为在 SQL Server 2000 之前,GUID 类型字段不存在,而且大多数主键是建立在自动增量字段之上的。

我已经看到其中一些数据库“在工作”,我可以说,在复杂的复制拓扑中管理这些身份范围可能是一个真正的 PITA,肯定会令人头痛,并且需要通宵达旦的调试 session 。

我刚刚在这里读到 Identity Range Management was still proposed as default with SQL Server 2008 ,然后是 this other question on Best Practises and Identity Range Management #mwolfe02 得出的结论是,在某些情况下,用户无法在数据库中插入数据,除非他们被授予数据库所有者的权限!

令人不安,不是吗?那么,除了遗留数据库之外,为什么有人应该在 SQL Server 中使用身份范围管理呢?用更通用的方式来说,为什么有人会在数据库中推广任何预定\自动增量识别方法?

最佳答案

我猜想继续使用标识值的原因之一是因为使用 GUID 作为数据库中的主键的缺点,这在此处记录 GUIDs as PRIMARY KEYs .

我个人从未使用过复杂的复制拓扑,并且在设置复制时始终使用整数。我通过调整身份函数的增量值来管理身份范围,因此,如果我有两台服务器进行复制,我将在一台服务器上使用奇数,在另一台上使用偶数,并增加 2。相同的设置适用于多个服务器,增量设置等于服务器数量。

我还会从整数的最低数字(-2,147,483,648 到 2,147,483,647)开始我的标识范围,因为有很多值不会被使用,因为整数标识列通常从一个开始。即使您涉及 20 台服务器,仍然可以为您提供相当多的可用值。

关于sql-server - 为什么有人应该将身份范围管理与 SQL Server 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6131559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com