1

我有一个棕色字段 SQL Server 2005 数据库,它使用标准的、未排序的 GUID 作为主键值的大部分,并且也在聚集索引中(这对性能不利)。

我应该如何将这些更改为顺序 GUID?挑战之一是在我更改每个主键时替换所有外键值。

您知道执行此类转换的任何工具或脚本吗?

4

3 回答 3

5

请记住,您只能使用 newsequentialid() 函数作为默认值

所以创建一个有 2 列的新表。将原始表中的密钥插入此表中(将另一列留出它会自行填充)

加入原始表并使用 newssequantialid 更新 PK,如果您有级联更新,则 FK 应自行更新

于 2009-06-19T13:31:32.567 回答
0

你怎么知道它对性能不好?

GUID 的优点是您不必担心多个进程同时创建记录。它可以大大简化您的代码,具体取决于程序。

于 2009-06-19T13:32:51.923 回答
0

当 Guid 是 PK 时,SequentialGuids 最适合性能。这就是它们存在的原因。

于 2012-11-28T16:32:45.600 回答